2016-04-13 16 views
-1

私は、単純な更新クエリを持っているが、それは動作していない:php mysql update queryが機能していませんか?

update user set active = 'Y' , delete = 'N' where id = 1;// not working 

が、私はphpMyAdminには、それは

update `user` set `active` = 'Y' , `delete` = 'N' where `id` = 1;//its working but its database generated 

を働いている使用して除いて差がない特殊文字を追加した場合'は必須ではありません。

+5

'delete'は[MySQL予約語](https://dev.mysql.com/doc/refman/5.5/en/keywords.html)です。テーブルや列名として使用することはできませんあなたがバックティックでそれを参照しない限り、 –

答えて

1

deleteは、MySQLの予約語です。あなたが囲まれた単語は、MySQLのキーワードではないことにMySQLを言ったが、database nametable nameまたはfield nameむしろされ、バッククォートを追加することにより

​​

したがって、競合は回避されます。

+0

'USER'は予約語ではなく、キーワードです。 2つの異なる動物はここにhttps://dev.mysql.com/doc/refman/5.7/en/keywords.html - しかし、 'USE'です。その隣に '(R)'がありますが、 'USER'にはありません。 –

+0

@ Fred-ii-、訂正された回答。ありがとうございました – Pupil

+0

*あなたはようこそ* –

1

DELETEは、SQLの予約キーワードです。バックティック文字でエスケープしないと、構文エラーが発生し、クエリは機能しません。

関連する問題