Php 如何调试mysqli驱动程序中的更新执行

Php 如何调试mysqli驱动程序中的更新执行,php,mysql,debugging,mysqli,Php,Mysql,Debugging,Mysqli,我看过很多帖子,但我仍然不明白为什么这个简单的更新无法影响数据库: $con=mysqli_connect(“本地主机”、“用户名”、“密码”、“数据库”); //检查连接 if(mysqli\u connect\u errno()){ echo“未能连接到MySQL:”.mysqli_connect_error(); } $quantityArray=array(); foreach($\发布为$key=>$value){ $quantityArray[$key]=$value; } for

我看过很多帖子,但我仍然不明白为什么这个简单的更新无法影响数据库:


$con=mysqli_connect(“本地主机”、“用户名”、“密码”、“数据库”);
//检查连接
if(mysqli\u connect\u errno()){
echo“未能连接到MySQL:”.mysqli_connect_error();
}
$quantityArray=array();
foreach($\发布为$key=>$value){
$quantityArray[$key]=$value;
}
foreach($quantityArray作为$key=>$value){
$value=mysqli\u real\u escape\u字符串($con,$value);
}
foreach($quantityArray作为$key=>$value){
$query=“更新库存集数量=$value,其中uniqueID=$key”;
回显“

”。$query。“

”; $result=mysqli\u查询($con,$query); 回显“

”。$result。“

”; }

调用此脚本时,$\u POST是一个数组,其中唯一ID作为键,数量作为值(两者都是整数值)。我已经测试并确认,是的,只有适当的键和它们的值被传递,所以为什么这不起作用对我来说是个谜

更新:$result完全不返回任何内容

谢谢你的帮助

试试这个:

$query = "UPDATE inventory SET quantity = $value WHERE uniqueID = $key";
尝试改变

$query = "UPDATE inventory SET quantity=" . $value . " WHERE uniqueID=" . $key;


也许
UPDATE
语句正确地执行了更新,但您正在寻找错误的数据库来检查它

从评论中我们得到了一个简单的解决方案:
mysqli\u错误($con)帮助找出默认用户权限不足以对指定表执行更新操作。添加具有适当权限的新用户解决了此问题。

这将是使用准备好的语句的绝佳机会。您是否尝试打印出实际查询的内容?如果您没有检查所有mysqli调用的返回值,并在发生故障时记录错误消息,你注定永远不会明白代码失败的原因。谢谢你的帮助。现在,我正在让代码将查询发布到浏览器中,我觉得很好:更新库存集数量=10,其中uniqueID=1我觉得它是对的。您确定
uniqueID
与数据库中的id匹配吗?尝试直接将其运行到phpmyadminIsn,而不是完全限定的表名“databasename.tablename”,而不是用户名?该数据库是在mysqli_connect()中指定的。还有,我试过这个代码,但还是不行。。。更新:也尝试使用数据库名称,但该字段仍然没有更新。是的,很抱歉,它必须是更新数据库名称。库存等,尝试一下,告诉我是否有效:)你测试了我的解决方案吗?它与原来的post.echo$query完全相同;出口如果直接在phpMyAdmin中运行该结果,是否会出现任何错误?
$query = "UPDATE inventory SET quantity=" . $value . " WHERE uniqueID=" . $key;
$query = "UPDATE databasename . inventory SET quantity=" . $value . " WHERE uniqueID=" . $key;