我必须更新动态表单,用户可以在问卷中添加,删除和更新问题。我已经创建了所有代码,这些代码将生成一个在最后执行一次的查询。
当我尝试同时更新多个问题时出现问题(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
有没有人知道为什么只有在我有两次更新时才会发生?如果是,我该如何解决这个问题。
答案 0 :(得分:0)
正如Mike W所建议的(谢谢),我改变了
if ($stmt = $mysqli->prepare($query)) {
$stmt->execute();
$stmt->close();
}
的
if ($mysqli->multi_query($query)) {
// Success
}