未插入自动增量ID

时间:2013-07-30 06:32:14

标签: php mysql phpmyadmin

我使用简单的MySQL代码从带有auto_increment id的表单插入数据,它在本地主机上运行正常但在服务器上运行不正常。

这是我正在使用的代码

 $myvar=$_POST['var'];
 //Insert data into mysql table
$sql="INSERT INTO mytable(id,myvar) VALUES ('','$myvar')";

在本地主机phpmyadmin数据插入表中但在服务器上phpmyadmin数据未插入表中。在我的localhost中,我使用XAMPP而在IIS服务器上使用phpmyadmin。 我应该在服务器上的phpmyadmin中做什么设置,以便自动插入自动增加的id,我知道我可以使用mysql_insert_id()来插入id但是在很多文件中我使用了这种类型的代码,我无法更改。我想要与XAMPP相同的设置,可以轻松获取此类代码。

6 个答案:

答案 0 :(得分:6)

您将''插入自动增量ID。只需插入其他字段,MySQL就会处理自动增量列。

$sql="INSERT INTO mytable(id,myvar) VALUES ('','$myvar')";

应该是

$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";

答案 1 :(得分:0)

如果您想要表格中所有行的最后一行,那么这最终是MAX(id)是正确答案的时间! :)有点。

SELECT fields FROM mytable BY id DESC LIMIT 1;

将获取最后一个id,然后将其增加到1 //将此值添加到insert语句中的id

或 如果您有自动增量列,请将其更改为

$sql="INSERT INTO mytable(id,myvar) VALUES ('','$myvar')";

$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";

答案 2 :(得分:0)

首先通过应用查询来检查表格结构:

desc mytable(或)show create table mytable。

为列ID设置了检查自动增量属性。

如果是,则表示不需要在插入查询中传递id。

只需编写一个查询: -

$ sql =“INSERT INTO mytable(myvar)VALUES('$ myvar')”;

答案 3 :(得分:0)

如果你仍然收到错误

首先检查,在服务器中你的id列必须标记为auto_increment.data类型应该是int。 如果没问题那么

insert into mytable(myvar) values('test');  

并尝试使用预准备语句来避免sql注入。谢谢。
希望这对你有用。

答案 4 :(得分:0)

将ID值留空,

像这样:

$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";

答案 5 :(得分:-1)

自动增量会插入id本身,因此您无需通过代码

传递它
$sql="INSERT INTO mytable(myvar) VALUES ('$myvar')";

或者你可以这样做

$sql="INSERT INTO mytable(id,myvar) VALUES (NULL,'$myvar')";

如果您想要出于某种原因手动插入ID

$sql="INSERT INTO mytable(id,myvar) VALUES (10,'$myvar')";