2015-10-22 2 views
1

У меня странная ситуация в mysql, поэтому у меня есть таблица с несколькими столбцами, одна из которых специфична. Эти столбцы: specific INT(10) UNSIGNED NOT NULL. Итак, если я пишу в sql: INSERT INTO infos_game (id_game,specific) VALUES (0, 12) ---- не работает Если я пишу: INSERT INTO infos_game (id_game,``specific``) VALUES (0, 12) ----- он работает, поэтому, если конкретный находится между `` работает отлично. В чем проблема ? Помоги мне, пожалуйста. Thx заранее. Если зарезервированное слово, как вставить в базе данных из PHP, я попытался:Вставить в конкретную ситуацию mysql

$o_infos_game_user_registered = new \Entity\Cluster\InfosGame(array(
         'id_game'  => $game->id_game, 
         'specific' => $game->specific, 
     ), 
     ); 
     $o_infos_game_user_registered->save(); 

Но я получаю ошибку

ответ

3

кажется, что конкретный является зарезервированным словом. Чтобы использовать зарезервированное слово, вам нужно использовать обратные тики (``), иначе запрос завершится с ошибкой.

Чтение Материал

MySQL Ключевые словаhttps://dev.mysql.com/doc/refman/5.5/en/keywords.html

Hit CTRL + F введите конкретный и подсвечивает ее.

0

Выполнение запросов с зарезервированных слов можно сделать 3 разными способами

1) Переименовать столбцы в не зарезервированное слово

ALTER TABLE "table_name" RENAME COLUMN "column 1" TO "column 2"; 

2) Использование назад клещей в запросах (``)

INSERT INTO infos_game (`id_game`,`specific`) VALUES (0,12) 

3. Используйте вставки без указания столбцов (при вводе данных, содержащих все столбцы)

//old query 
INSERT INTO infos_game (id_game,specific) VALUES (0, 12) 
//new query 
INSERT INTO infos_game VALUES (0, 12) 
+1

** 2 ** - те не обратные тики. – Script47

+0

Wooops, отредактировал ^^ – KuKeC

Смежные вопросы