用 php 和 ajax 更新 mysql 表

Posted

技术标签:

【中文标题】用 php 和 ajax 更新 mysql 表【英文标题】:updating the mysql table with php and ajax 【发布时间】:2015-04-01 05:20:07 【问题描述】:
$.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) ; 正在显示以下错误错误

“‘字段列表’中的未知列‘已输入国家’”

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

name、email、count、tool、orderstatus 是 varchar, 并且 orderid 是 int, 请求日期为 DATE。

【问题讨论】:

检查浏览器控制台以进行调试以及您得到了什么? '$count'WHERE. 之间没有空格。如果这不是问题,请将数据类型与表字段匹配,如果在问题中添加表结构会更好。 从查询中删除不需要的空间 `` Country_Entered` = '$count'WHERE` 应该是 Country_Entered = '$count' WHERE 您对发布的字段进行了哪些检查?你在做什么逃避?是导致问题的MySQL注入吗?但是是的,有一个简单的错字 @LiamSorsby 新手提醒。听不懂。 【参考方案1】:

正如错误提示,@Rakesh Sharma 在 cmets 中也提到过

“'字段列表'中的未知列'[空格]国家输入'”

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

【讨论】:

【参考方案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'。删除它只是为了确保它不会导致问题。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于用 php 和 ajax 更新 mysql 表的主要内容,如果未能解决你的问题,请参考以下文章

用 jQuery/AJAX 更新 MYSQL

AJAX 使用从 PHP 生成的 HTML 调用的函数更新 MYSQL 数据库

复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql

AJAX PHP MYSQL 更新/编辑记录 (jQuery)

PHP / MySQL / AJAX - 更新多个数据

使用ajax更新Mysql数据库表