2015-03-08 143 views
1

我有以下腳本的問題,它是假設在未來增值mysql_fetch_assoc返回NULL


$lastidquery = "SELECT AUTO_INCREMENT FROM information_schema.tables WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'user';"; 

$lastid = mysql_query($lastidquery); 

$id = mysql_fetch_assoc($lastid); 

$next_increment = $id['Auto_increment']; 

mysql_fetch_assoc返回null同時請求mysql_query回報率= resource(9, mysql result)

+1

但是,爲什麼大火你想通過這種方式得到最後一個/下一個自動增量ID?它會癱瘓您爲單個併發請求寫入的任何應用程序,除非您想在數據庫上造成問題 – 2015-03-08 20:33:58

+1

不要使用mysql_ *函數。不要。他們已被棄用,如果你今天正在開發一些東西,那麼不要依賴於語言的過時方面。此外,它們不安全(這是它們被棄用的原因)。 – 2015-03-08 20:36:07

+0

這可能有助於解釋你正在嘗試做什麼,而不是要求我們調試代碼。正如@MarkBaker所提到的,這甚至與標準實踐還差得很近...... – 2015-03-08 20:38:19

回答

1

我感謝PaulJ找到了解決方案。

我試圖獲得下一個增量值,我需要添加一個新行時用作另一個表中的外鍵。

我實際上插入了父表的數據,使用獲得了最後插入的鍵$ last_id = $ connect-> insert_id;,然後使用獲得的ID作爲外鍵將數據插入到子表中。