-1

私はこれを理解していません:

mysql データベースを更新します。

mysql_query("UPDATE image Set title = '".$ed1."', desc = '".$ed2."', cat = '".$ed3."', privacy = '".$ed4."' WHERE id = '".$id."'");

しかし、それは示しています:

エラー 1064

と:

SQL 構文にエラーがあります。near desc = [...] を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

編集: 返信ありがとうございます。名前を改名しました!今では動作します;)

4

2 に答える 2

4

DESC は SQL の予約語です。使用する場合は、引用する必要があります。

mysql_query("UPDATE `image` Set `title` = '".$ed1."', `desc` = '".$ed2."', `cat` = '".$ed3."', `privacy` = '".$ed4."' WHERE `id` = '".$id."'");

可能であれば、フィールド名に予約語を使用しないようにしてください。ここにリストがあります: http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

mysql_*関数は非推奨になっているため、関数からの移行も検討する必要があります。代わりに PDO または mysqli の使用を検討する必要があります。どちらもより安全な SQL を作成するのに役立ちます。

于 2012-11-14T20:24:34.067 に答える
1

DESCMySQL の予約語です。バックティックでエスケープする必要があります。試す

UPDATE image Set title = '".$ed1."', `desc` = ...
于 2012-11-14T20:24:12.360 に答える