MYSQL错误#1064 - 更新多行

时间:2014-08-13 17:31:23

标签: php mysql mysqli

我必须更新动态表单,用户可以在问卷中添加,删除和更新问题。我已经创建了所有代码,这些代码将生成一个在最后执行一次的查询。

当我尝试同时更新多个问题时出现问题(INSERT和DELETE就像魅力一样)。

$query = ''; // append every thing to update in this variable
// for each questions check if needs to be modify, if yes append.
$query .= 'UPDATE `questionnaire` SET `id_category` = '.$categoryValue.' WHERE `id` = '.$idQuestion.'; '

输出示例

UPDATE `questionnaire` SET `id_category` = 1 WHERE `id` = 1; UPDATE `questionnaire` SET `id_category` = 3 WHERE `id` = 2; 

提交到数据库;

if ($stmt = $mysqli->prepare($query)) {
    $stmt->execute();
    $stmt->close();
}

如果我只有一个更新,它就像一个魅力。一旦我有2次更新,我就会收到这个MYSQL错误:

errno : 1064
error : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'UPDATE `questionnaire` SET `id_category` = 3 WHERE `id` = 2' at line 1

有没有人知道为什么只有在我有两次更新时才会发生?如果是,我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

正如Mike W所建议的(谢谢),我改变了

if ($stmt = $mysqli->prepare($query)) {
    $stmt->execute();
    $stmt->close();
}

if ($mysqli->multi_query($query)) {
     // Success
}