1

テーブルの行を作成してから編集していますが、phpでのedit mysqlクエリにより、理解できないエラーが発生します。何か助けはありますか?

作成クエリ:

$query = "INSERT INTO timelines (
id, event_name, event_date, date_created, attendee_count, attendee_names, maximum_attendees, creator_id, creator_name, price, thumbnail
) VALUES (
'{$timelineID}', '{$event_name}', '{$event_date}', '{$date_created}', '{$attendee_count}', '{$attendee_names}', '{$maximum_attendees}', '{$creator_id}', '{$creator_name}', '{$price}', '{$thumbnail}'
)";

編集クエリ:

$query = "UPDATE timelines SET 
event_name = '{$event_name}', 
event_date = '{$event_date}', 
maximum_attendees = '{$maximum_attendees}', 
price = '{$price}', 
thumbnail = '{$thumbnail}',
WHERE id = {$timelineID}";

エラー:

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

4

1 に答える 1

10

WHERE句の前に余分なコンマがあります。取り外すだけで問題なく動作します。

thumbnail = '{$thumbnail}',
                          ^ here
WHERE ...

最終クエリ、

$query = "UPDATE timelines SET 
event_name = '{$event_name}', 
event_date = '{$event_date}', 
maximum_attendees = '{$maximum_attendees}', 
price = '{$price}', 
thumbnail = '{$thumbnail}'
WHERE id = {$timelineID}";

クエリは脆弱ですSQL INJECTION。それから保護する方法については、以下の記事をお読みください。

于 2012-12-06T03:35:15.100 に答える