有人可以向我解释为什么以下情况不起作用:
mysql_query("DELETE FROM `categories` WHERE `id` = '{$id}'");
以下情况确实有效:
$query = "DELETE FROM `categories` WHERE `id` = '{$id}'";
mysql_query($query);
答案 0 :(得分:3)
它们都应该完全相同。
试试这个:
mysql_query("DELETE FROM categories WHERE id = '{$id}'");
这总是对我有用。但是将它放在变量中会使得有时更容易使用。
答案 1 :(得分:2)
两者之间没有区别。两者都容易受到SQL注入的攻击。您应该使用预备语句或mysql_real_escape_string
。
答案 2 :(得分:2)
两者之间没有任何功能差异,但将查询存储在单独的变量中可以更容易地调试生成的语句。
e.g。
$sql = "...";
$result = mysql_query($sql);
if ($result === FALSE) {
echo "Query failed: ", $sql, mysql_error();
}
答案 3 :(得分:0)
我怀疑在线示例刚刚开始使用单独的$query
变量,并且人们在没有真正考虑它的情况下复制它,然后更多的例子实现了它,现在有很多人在不知道原因的情况下这样做。 C'est la vie。