首頁 > 後端開發 > php教程 > MYSQL 小技巧 -- LAST_INSERT_ID

MYSQL 小技巧 -- LAST_INSERT_ID

WBOY
發布: 2016-07-29 08:41:18
原創
1139 人瀏覽過

其實,這兩個是有差別的,LAST_INSERT_ID() 能回傳 bigint 值的id。而,mysql_insert_id 回傳的是 int 。如果你
的id 是 unsigned int,或是 bigint 的 。那麼,可能是回傳的是錯誤的。而要用 LAST_INSERT_ID() 代替。
還有一些朋友,回傳的都是 0,不知道怎麼回事,其實 LAST_INSERT_ID() 回傳的是 AUTO_INCREMENT 的 ID。
如果,在表結構中,沒有設置,AUTO_INCREMENT 那麼也無法回傳。
還有些人,還是返回為 0. 那麼你就要檢查一下,是不是 用了 insert delay 的功能。這種情況下,是不會傳回即時的回傳id值的。
很多人喜歡用select max(id) ... 來替換這個last_insert_id, 實際上, select max(id) 是非線程安全的,很有可能,
其他線程插入了新的數據,你就查不到你上次插入的ID 了。而last_insert_id 是 和 一個mysql connect 相對應的,也就是
和你目前的執行緒相對應的,不會受其他執行緒的干擾。如果你的資料庫發生了一些奇怪的錯誤,例如,本來是要更新A 資料的資訊的,
結果B 資料被更新了,而且是有時候正確,有時候不正確,人多的時候會非常的不正確。就要看看是不是 用了 select max(id)

以上就介紹了 MYSQL 小技巧 -- LAST_INSERT_ID,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板