【发布时间】:2016-07-06 23:00:31
【问题描述】:
那么除了我没有包含的数据库连接器之外,还有什么可能导致我收到此错误?
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在“UPDATE EventData SET deviceID = "631403956MB21" WHERE deviceID = "4631403956MB' at line 1" 附近使用正确的语法
这是我的 php mysqli 多查询。
$sql = "UPDATE Device SET deviceID = \"631403956MB21\" WHERE
deviceID = \"4631403956MB2\" ";
$sql .= "UPDATE EventData SET deviceID = \"631403956MB21\" WHERE
deviceID = \"4631403956MB2\" ";
$sql .= "UPDATE NotifyQueue SET deviceID = \"631403956MB21\" WHERE
deviceID = \"4631403956MB2\" ";
$sql .= "UPDATE RuleTrigger SET deviceID = \"631403956MB21\" WHERE
deviceID = \"4631403956MB2\" ";
$sql .= "UPDATE RuleList SET deviceID = \"631403956MB21\" WHERE
deviceID = \"4631403956MB2\" ";
$result = mysqli_multi_query($db, $sql);
if ($result) {
echo 'true';
} else {
echo 'false';
echo mysqli_error($db);
}
mysqli_close($db);
谢谢, 迈克
【问题讨论】:
-
为了使您的代码更易于阅读,请在双引号字符串中使用单引号,例如
$sql = "UPDATE Device SET deviceID = '631403956MB21' WHERE deviceID = '4631403956MB2'"; -
您是否尝试更改该语句中的主键?
-
您以错误的方式运行 mysqli_multi_query。更好地以通常的循环方式运行单独的查询 - 它会给您带来更少的问题。
-
这种情况正是
multi_query存在的原因。它比在循环中执行单个查询要快得多,所以我建议 OP 学习如何正确使用它。发布的代码的唯一问题是查询没有被;分隔。