2013-02-16 64 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中,我認爲它會被忽略。