2013-02-16 59 views
1

如何设置允许mySQL在使用php时自动增加mySQL中的一行?我已经使用phpMyAdmin将link_id列设置为auto_increment,但我不知道如何在使用PDO时使行自动增量。php mySQL pdo auto_increment行的主键

$preparedStatement = $con->prepare('INSERT INTO link (link_id, category, link_desc, link_url) VALUES (:link_id, :category, :link_desc, :link_url)'); 
$preparedStatement-> execute(array(':link_id' => **AUTO INCREMENT Field in mySQL**, ':category' => $category,':link_desc' => $link_desc,':link_url' => $link_url)); 

感谢您的帮助!

回答

1

您不必对PHP做任何特殊的处理,但MySQL有几种方法。一种是使用虚假值或空值:

INSERT INTO link (<columns>) VALUES (null, category... 

只需排除PHP中的参数即可。

您还可以指定要插入列,如果你离开关AUTO_INCREMENT键,它就会自动递增:

INSERT INTO link (category, link_desc...) 
+0

在auto_increment字段中指定'null'是否具有已定义的行为?我宁愿将它留在查询之外。哦,没关系,只是发现'NULL'和'0'根据[docs](http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.html)也是有效的)。 – 2013-02-17 00:04:11

+0

这是一个PDO解决方案吗?它看起来不像我,我有同样的麻烦。在mysql自动插入自动增量的地方,似乎PDO没有。你有解决方法吗? – gavin 2013-10-25 20:56:49

0

你可以使用任何价值填补INSERT语句中的AUTO_INCREMENT列... 的MySQL自动将覆盖定义到您的语句中的AUTO_INCREMENT列值,并正确处理新值。

在控制台模式下,如果值设置不正确,它会生成警告,但在PHP中,我认为它会被忽略。