php - 为什么 Update 语句中有语法错误?
问题描述
$uploadDate = date("Y-m-d");
$sql = "INSERT into book (img_path, title, author, publisher, description, quantity, category, publish_date, upload_id, isbn, sku) values('$book_name', '$bookTitle', '$bookAuthor', '$bookPublisher', '$bookDescription', $bookStock, '$category', '$uploadDate', '$uploadID', '$isbn', '$sku');";
$statusAccept = 'Book Published';
$sql .= "UPDATE upload SET status = '$statusAccept' AND file = '$filename' WHERE no = '$uploadID'";
// Execute multi query
if (mysqli_multi_query($conn,$sql)) {
do {
// Store first result set
if ($result=mysqli_store_result($con)) {
// Fetch one and one row
while ($row=mysqli_fetch_row($result)) {
echo "New record created successfully <br/>";
}
// Free result set
mysqli_free_result($result);
}
}
while (mysqli_next_result($con));
}
我mysqi_multi_query()
从 w3schools 的示例中使用问题,第一个查询成功插入,但第二个查询成功更新,状态值错误。状态变为数字 0 ("0") 的字符串,而不是来自 variable 的字符串$statusAccept
。现在,我尝试重定向到另一个 PHP 文件,并再次将状态从零的字符串更新为之前所需的变量的字符串。
解决方案
您的第二个查询不正确:
UPDATE upload SET status = '$statusAccept' AND file = '$filename' WHERE no = '$uploadID'
它应该是:
UPDATE upload SET status = '$statusAccept', file = '$filename' WHERE no = '$uploadID'
阅读有关UPDATE 语句的更多信息。
并且不要忘记使用Prepared Statements。
推荐阅读
- python - 如何将我的 for 循环代码转换为 Python 中的 while 循环?
- powershell - 脚本文件,等待函数直到生成文件结束
- javascript - v-for 到 v-if 的 VueJS 过滤器
- python - Discord.py 通过用户 ID 禁止特定的人
- html - 防止html元素之间的换行
- mysql - 选择是否存在于另一个表中,带有 AND 条件
- eslint - 如何强制 Prettier 使用总是引用道具(并尊重我的 eslint 规则)?
- qt - 通过 GUI 线程进行的更改不会反映在 workerscript 中
- c++ - abour cerr 和 clog 的 C++ 程序在 Clion 和终端中的运行方式不同
- android - 更改 NumberPicker 分隔线颜色不适用于 Android Api 29+