除非更改表名,否则无法在Mysql中插入数据

时间:2012-07-15 14:52:52

标签: php mysql

我是一个学习php的新手,这对我来说是一个奇怪的问题。

我创建了一个名为order的表,它只有1列:一个int(1)(主键,自动增量)(它之前有更多列,我已经改变了结构,但这会有问题吗?)< / p>

当我尝试使用以下方法插入数据时:

$db=mysql_connect('localhost','root','');
mysql_select_db('workroom',$db);
$sql = "insert into abc values (null)";
mysql_query($sql,$db);

db没有发生任何事情。

但是,当我将表名“order”更改为“abc”(或任何其他名称,并更新$ sql)时,insert函数可以正常工作。

有人能帮帮我吗?非常感谢。

再次感谢,

肖恩

3 个答案:

答案 0 :(得分:2)

我仍然是PHP的新手,但我相信订单是MySQL的命令。因此,要解决此错误,您需要在TableName周围添加“`或更改表名。

这可能适合你。

$sql = "INSERT INTO `TableName` (value1, value2, value3) VALUES ('value1', 'value2', 'value3')";

仅供参考,“键位于键盘上方”键盘上方。

答案 1 :(得分:1)

您必须在要使用的表上使用反向标记,而不是简单地使用“order”,因此MySQL将其识别为表而不是保留字:

$sql = "INSERT INTO `order` VALUES...";

答案 2 :(得分:0)

不要使用表名顺序,因为它是保留字。如果你想使用顺序那么你可以简单地添加引号``

$sql = "INSERT INTO `order` values(Your data);