2016-04-13 3 views
-1

У меня есть простой запрос на обновление, но он не работает:Запрос на обновление php mysql не работает?

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.

https://dev.mysql.com/doc/refman/5.7/en/keywords.html

Добавляя обратные одиночные кавычки, вы рассказываете MySQL, что слово заключено не является ключевым словом MySQL, но, скорее, database nametable name или field name.

Таким образом, любого конфликта избегают.

+0

'USER' не является зарезервированным словом, это ключевое слово. Здесь есть два разных животных: https://dev.mysql.com/doc/refman/5.7/en/keywords.html - Однако используется 'USE'. Рядом с ним есть '(R)', но не для 'USER'. –

+0

@ Fred-ii-, исправленный ответ. Спасибо – Pupil

+0

* Добро пожаловать. * –

1

DELETE - зарезервированное ключевое слово в SQL. Не ускользая от него с помощью обратного шага, вы получите синтаксическую ошибку, и запрос не будет работать.