-1

なぜここで実行されないのかわかりませんmysql_query($update)。すべてのコードは私には問題ないようです。var_dump要素は期待値をもたらします。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;
}
4

2 に答える 2

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);
于 2012-10-14T21:21:34.343 に答える
0

列が INTEGER の場合id、 value を一重引用符で囲む必要がある場合がありますid='{$passed_id}'

于 2012-10-14T21:25:28.067 に答える