2012-08-13 120 views
0

我有一個正確運行的查詢,它將一行插入到具有自動增加主鍵的表中。但是mysql_insert_id()總是以'0'出現。mysql_insert_id()返回'0'

$this->event->insertEvent($event); 
$lastid = mysql_insert_id(); 

我在網站的其他區域使用了相同的命令,它的工作完美。 這背後的原因是什麼?

+0

文檔說'由成功前面的查詢爲AUTO_INCREMENT列生成的ID,0如果先前的查詢不產生一個AUTO_INCREMENT值,或FALSE如果沒有mysql連接建立。「你是否在該函數內運行另一個查詢來覆蓋最後的插入ID結果? – drew010 2012-08-13 22:41:36

+0

你可以顯示你運行插入的方法嗎?這可能是相關的。 – Tchoupi 2012-08-13 22:43:33

+1

從設計角度來看,它會更清晰,以便您的'insertEvent()'返回您的id – zerkms 2012-08-13 22:47:37

回答

0

從PHP頁面,並採取可能的東西可以做,以排除一件事如果不解決這個問題:http://www.php.net/manual/en/function.mysql-insert-id.php#94511

如果mysql_insert_id()返回0或空的,請檢查您也有 包括鏈接標識符。它是可選的,但如果你有一個數據庫連接超過 ,那麼這是必要的。

例如:mysql_insert_id($康恩)

+0

只有一個數據庫時是否需要? – Nicole 2012-08-13 23:04:04

+0

您可以有多個連接到一個數據庫。沒有參數的mysql_insert_id()會使用最後一次連接,但INSERT查詢可能會從另一個連接執行,所以mysql_insert_id()將返回0 – CyberDem0n 2012-08-14 05:51:03