我在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插入数据库,我试过:
$o_infos_game_user_registered = new \Entity\Cluster\InfosGame(array(
'id_game' => $game->id_game,
'specific' => $game->specific,
),
);
$o_infos_game_user_registered->save();
但是我收到了错误
答案 0 :(得分:3)
似乎特定的是保留字。要使用保留字,您需要使用后退标记(``),否则查询将失败。
阅读材料
MySQL关键字 https://dev.mysql.com/doc/refman/5.5/en/keywords.html
点击CTRL + F
,然后输入特定的,它会突出显示它。
答案 1 :(得分: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)