PHP獲取新插入的主鍵id


  近期在做訂單系統開發的時候遇到了此類情景,A表內插入后返回新插入的主鍵ID,然后用於B表插入數據並攜帶此id。

目前有幾個方法總結

No1.每次插入數據之后返回A表內的最大值,但是對於多用戶以及高並發來說這個方案不可行,首先是數據量大對數據庫造成的壓力也大,其次高並發時會造成數據丟失或者數據重復的問題,So,此方法Out!

 

No2.插入數據之后調用mysql_insert_id(),mysql_insert_id() 返回給定的 connection 中上一步 INSERT 查詢中產生的 AUTO_INCREMENT 的 ID 號。如果沒有指定 connection ,則使用上一個打開的連接,但是遇到某些情況還是同上,訂單重復等問題比較雞肋。

 

No3.也是我現在使用的,使用 SELECT LAST_INSERT_ID() ,目前使用此方法暫時還沒有發現什么問題,整體來說還是推薦這個第三種的方法

  具體Code

  

$querys="SELECT LAST_INSERT_ID()";
$results=mysql_query($querys);
$rows=mysql_fetch_row($results);
echo $rows[0];

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM