Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL WHERE语句不工作_Php_Sql_Where - Fatal编程技术网

Php SQL WHERE语句不工作

Php SQL WHERE语句不工作,php,sql,where,Php,Sql,Where,我编写了以下代码: $sql="INSERT INTO donate (amount, reward) VALUES ('$amount', '$reward') WHERE id = ('$id')"; 但我得到了这个错误: 错误:您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行的'WHERE id='19附近 我不知道我做错了什么,有人能帮我吗?你不能用WHERE子句插入。如果需要WHERE条件,则需要进行更新 您可以使用: $sql="UPDA

我编写了以下代码:

$sql="INSERT INTO donate (amount, reward) VALUES ('$amount', '$reward') WHERE id = ('$id')";
但我得到了这个错误:

错误:您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行的'WHERE id='19附近


我不知道我做错了什么,有人能帮我吗?

你不能用WHERE子句插入。如果需要WHERE条件,则需要进行更新

您可以使用:

$sql="UPDATE donate SET amount='$amount', reward='$reward' WHERE id = '$id'";
您要求的是更新而不是插入

插入语法不能有WHERE子句。只有在使用INSERT INTO…SELECT语句时,才能找到INSERT有WHERE子句

你可以试试

$sql="UPDATE donate SET amount='" . $amount. "', reward='" .$reward. "' WHERE id='" .$id. "'";

当您在插入此记录时,它在数据库表中不可用,因此您不使用where

第二,您只在现有数据库记录上使用原因,如更新或删除记录


我希望能为您提供帮助

您可以更新现有行,也可以插入新行。其中只有在更新时才有意义,而不是在插入时。如果id=19,是否要插入到表中?这不是正确的SQL语法。你想达到什么目的?你的前两句是错误的,但其余的答案是正确的。我没有对答案投反对票。要补充一点,在更新多个id时,更新捐赠设置金额=“$amount”,奖励=“$reward”,其中id位于[以逗号分隔的id列表]中@Jenz我也不知道为什么有人会否决这个答案。@Takuya.为什么用逗号分隔的id。我在问题中看不到任何逗号分隔的值。@Jenz,我只是在添加/扩展你的答案。用多个匹配ID更新行毕竟是一种常见的模式。@Jenz我可以问一下为什么在WHERE子句中包含括号吗?这是因为OP在问题中有它,还是特定于特定类型的SQL?我这样问是因为我觉得这是多余的。