我无法修复此查询 尝试了很多次,我仍然得到MySQL语法错误
//MySqli Delete Query
$mysqli->query("DELETE FROM `deliverys` WHERE id=" . $row['id'] . "");
有什么问题?
答案 0 :(得分:2)
老兄,在这里做一些基本的调试,回显你提交给数据库的SQL文本。
$sql = "DELETE FROM `deliverys` WHERE id=" . $row['id'] ;
echo "SQL=" . $sql;
if (!$mysqli->query($sql)) {
echo "ERROR: " . $mysqli->error;
}
从另一个客户端测试对数据库的语句,验证它是否是一个有效的SQL语句。
我们可以对SQL语法错误进行一些猜测,例如,如果$row['id']
求值为空格或空字符串,我们就知道SQL语句将无效。但我们真的只是在猜测。也许$row['id']
计算产生无效SQL语句的其他值。 (也许那里没有一个名为deliverys
的表格,或者表格中没有包含名为id
的列,或者可能是您正在连接的用户,而不是#39} ; t具有权限。有时,MySQL返回的实际错误消息将为您提供有关错误的线索。)
这里没有足够的上下文,但看起来你的代码在这里受SQL注入...更好地使用带有绑定占位符的预准备语句。希望有某种保证,它不会评估为 1 OR 1=1
这样的价值。
答案 1 :(得分:0)
尝试硬编码值而不是使用$ row [' id']。如果它正在运行您的$ row [' id']变量未正确设置。确保$ row [' id']通过echo它有一个整数值。
答案 2 :(得分:0)
$mysqli->query("DELETE FROM deliverys WHERE id=".$row['id']);