用 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 表的主要内容,如果未能解决你的问题,请参考以下文章
AJAX 使用从 PHP 生成的 HTML 调用的函数更新 MYSQL 数据库
复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql