用 php 和 ajax 更新 mysql table

updating the mysql table with php and ajax

$.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) ; 显示以下错误错误

"Unknown column ' Country Entered' in 'field list'"

有人能解决这个问题吗?

姓名、电子邮件、计数、工具、订单状态为 varchar, orderid 是 int, 请求日期是 DATE。

确保 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 语法错误。 请注意您的列名称中的 space -> ` Country_Entered` = '$count'。删除它只是为了确保它不会导致问题。

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

"Unknown column '[blank space]Country Entered' in 'field list'"

我认为问题是一个额外的space in ' Country_Entered' 查询中有额外的白色space。删除它,我认为它应该可以正常工作。

Country_Entered 列是否真的存在于数据库中?