PHP獲取MySql新增記錄ID值的3種方法
一、使用語句:
使用此方法得到的是 id最大的值,確為最后一個值,但當(dāng)多鏈接線程時,這個最大的id并不一定是我們插入數(shù)據(jù)的自增id值,因此不適用于多線程。
二,使用函數(shù):msyql_insert_id();
在PHP中,經(jīng)常需要把插入數(shù)據(jù)庫中的id值取出來,而正好有這么一個函數(shù):
<?php
//執(zhí)行插入數(shù)據(jù)庫的語句
//……
$getID=mysql_insert_id();//$getID即為最后一條記錄的ID
//此函數(shù)的使用條件:
//1.假設(shè)字段名稱為recordID
//2.字段屬性須設(shè)為:auto_increment
//3.添加數(shù)據(jù)后使用
//$newID = mysql_insert_id();
//得到ID值
?>
PHP 函數(shù) mysql_insert_id() 是返回在最后一次執(zhí)行了 INSERT 查詢后,由 AUTO_INCREMENT 定義的字段的值。
當(dāng)系統(tǒng)執(zhí)行完INSERT后,再執(zhí)行SELECT時,可能已經(jīng)被分發(fā)到了不同的后端服務(wù)器,如果使用php編程,此時應(yīng)該通過 mysql_insert_id()來得到最新插入的id,每次INSERT結(jié)束后,其實對應(yīng)的autoincrement值就已經(jīng)計算好返回給PHP 了,你無需再發(fā)出一次獨立的查詢,直接用mysql_insert_id()即可。
當(dāng)插入一條語句時,它自動返回最后的id(mysql自增值)。
并且此函數(shù)僅對當(dāng)前鏈接有用,即它是多用戶安全型的。
建議使用此函數(shù);
問題:當(dāng)id 為bigint 型時 就不在起作用了。
三、使用查詢
last_insert_id() 是mysql 一個函數(shù) 也是 對當(dāng)前鏈接起效
此用法 解決了 mysql_insert_id () 中遇到的 bigint 型問題
總結(jié):
推薦使用方法二,特殊情況下,可以考慮方法三。
相關(guān)文章
php post大量數(shù)據(jù)時發(fā)現(xiàn)數(shù)據(jù)丟失問題解決方法
這篇文章主要介紹了php post大量數(shù)據(jù)時發(fā)現(xiàn)數(shù)據(jù)丟失問題解決方法,原因是默認配置里的數(shù)據(jù)量配置太小造成的這個問題,修改一下配置即可,需要的朋友可以參考下2015-06-06PHP中str_replace函數(shù)使用小結(jié)
在實際的程序開發(fā)中,執(zhí)行字符串替換操作是一件非常經(jīng)常的事,對str_replace函數(shù)的實用也會非常頻繁。2008-10-10ThinkPHP6.0 重寫URL去掉Index.php的解決方法
這篇文章主要介紹了ThinkPHP6.0 重寫URL去掉Index.php的解決方法,解決問題最好多看看官方給的文檔,但有時候也不能全看官網(wǎng)文檔,可以結(jié)合官網(wǎng)下面的討論區(qū),借鑒各個大佬們的回答去解決問題2021-01-01同臺服務(wù)器使用緩存APC效率高于Memcached的演示代碼
之前看到有文章說同臺服務(wù)器上APC的效率是Memcached的7倍,APC效率比Memcached高是肯定的,至于倒底快多少,我寫了個小程序測試了下。2010-02-02PHP組合模式Composite Pattern優(yōu)點與實現(xiàn)過程
這篇文章主要介紹了PHP組合模式Composite Pattern優(yōu)點與實現(xiàn),組合模式是一種結(jié)構(gòu)型模式,它允許你將對象組合成樹形結(jié)構(gòu)來表示“部分-整體”的層次關(guān)系。組合能讓客戶端以一致的方式處理個別對象和對象組合2023-03-03php+mysql查詢實現(xiàn)無限下級分類樹輸出示例
這篇文章主要介紹了php+mysql查詢實現(xiàn)無限下級分類樹輸出,結(jié)合實例形式分析了php+MySQL查詢實現(xiàn)的樹狀分類輸出功能,涉及php數(shù)據(jù)庫查詢與數(shù)組遍歷等相關(guān)操作技巧,需要的朋友可以參考下2016-10-10