0

ユーザーが投稿したコンテンツを編集できるようにしようとしています。内容は、タイトルとテキストの 2 つのセクションに分かれています。カテゴリもありますが、編集させたくありません。したがって、タイトルへの変更を更新すると想定されるコードは次のとおりです。

$sql = "更新

トピック

SET topic_subject = " . mysql_real_escape_string($_POST['topic_subject']) . "

どこ

topic_id = " .mysql_real_escape_string($_GET['id']);

コンテンツを更新するコードも同じ形式です。ページの URL から ID を取得し、編集ページで [送信] をクリックすると、フォームはこのコードを含むページを呼び出します。それは私にこのエラーを与えます:

データの挿入中にエラーが発生しました。後でもう一度やり直してください。

SQL 構文にエラーがあります。4 行目の 'WHERE topic_id =' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私は SQL の専門家ではないので、何が問題なのかわかりません。前もって感謝します。

4

1 に答える 1

0

文字列値を一重引用符で囲みません:

$subject = mysql_real_escape_string($_POST['topic_subject']);
$topic_id = (is_numeric($_GET['id']) ? $_GET['id'] : 'NULL');
$sql = "
    UPDATE topics
    SET topic_subject = '$subject'
    WHERE topic_id = $topic_id
";

私のコードも列であると想定しtopic_idているintため、値をエスケープする代わりに数値であるかどうかを確認しています。

于 2012-04-28T21:36:37.410 に答える