为什么我的SQL没有被执行?

时间:2012-10-14 21:18:04

标签: php mysql sql

我不明白为什么mysql_query($update)没有在这里执行。所有代码对我来说都很好,var_dump'ing元素会产生预期值。 echo $passed_title;正在执行而没有来自前一行的警告,如上所述,未执行(DB未更新)。为什么呢?

$ask_if_empty = "SELECT id FROM content WHERE id='{$passed_id}'";
$ask_if_empty2 = mysql_query($ask_if_empty) or die($error[25]);

if (mysql_num_rows($ask_if_empty2) !== 0) 
{
    $update = "UPDATE content SET title='{$passed_title}' WHERE id='{passed_id}'";
    mysql_query($update) or die($error[25]);
    echo $passed_title;
}

2 个答案:

答案 0 :(得分:4)

您错过了$

$update = "UPDATE content SET title='{$passed_title}' WHERE id='{$passed_id}'";

我强烈建议在sql查询中使用它们之前转义字符串。您可以使用mysql_real_escape_string执行此操作。否则你会接受sql注入攻击:

$passed_title = mysql_real_escape_string($passed_title);

如果$passed_id是整数,则应使用intval()

来阻止恶意输入
$passed_id = intval($passed_id);

答案 1 :(得分:0)

如果id列是INTEGER,您可能需要删除值id='{$passed_id}'周围的单引号。