用php和ajax更新mysql表

时间:2015-02-02 09:40:48

标签: php jquery mysql ajax mysqli

$.ajax({
            url:"update.php",
            data: {orderid:orderid,date:date,tool:tool,name:name,email:email,count:count,orderstatus:orderstatus},

            type:"POST",
            dataType: "text",
            complete:function(response){

                console.log(response.responseText);
            }

        });

上面的代码ajax将数据(名称,日期,电子邮件)发送到不同的文件名更新。

update.php如下

$orderid=$_POST["orderid"];
        $date=$_POST["date"];
        $tool=$_POST["tool"];
        $name=$_POST["name"];
        $email=$_POST["email"];

        $count=$_POST["count"];
    $sql = "UPDATE $tablename SET  `Tool`= '$tool', `Request Date` = '$date', `Name` = '$name', `Email` = '$email', ` Country_Entered` = '$count'WHERE `Order ID` = '$orderid'";

但由于某种原因,当我添加Country_Entered = $ count`时,更新无法正常工作我试图调试问题我无法在代码中找到问题不足

$result = mysqli_query($db,$sql);

        if ($result) {
               echo "Successfully Updated.";

        } else {
               echo "Some Error occured.";


  echo  mysqli_error($sql) ;

        }

echo mysqli_error($sql) ;显示以下错误错误

  

“字段列表”中的“未知列”“已输入国家/地区”

并且任何人都可以解决这个问题吗?

名称,电子邮件,计数,工具,orderstatus是varchar, 和orderid是int, 请求日期是DATE。

3 个答案:

答案 0 :(得分:3)

正如错误所示,@Rakesh Sharma在评论中也提到了

  

"未知列' [空格]国家/地区输入'在'字段列表'"

我认为问题是' Country_Entered'中的额外空格,查询中有额外的空格。删除它,我认为它应该工作正常。

答案 1 :(得分:2)

确保varchar列采用非空值,例如空字符串或null。如果你的查询看起来像这个问题就会出现问题

$sql = "UPDATE $tablename SET  `Tool`= '$tool', `Request Date` = '$date', `Name` = '$name', `Email` = '$email', `Country_Entered` = '$count'WHERE `Order ID` = '$orderid'";

例如,如果$ count为空,则查询将如下所示

... `Country_Entered` = '' ...

这是sql语法错误。 请注意列名称中的空格 - > `Country_Entered` ='$ count'。删除它只是为了确保它不会导致问题。

答案 2 :(得分:1)

Country_Entered列真的存在于DB内吗?