php 獲取最後插入數據的id

向mysql 插入數據時 不少時候 咱們想知
道剛剛插入數據的id 這對咱們頗有用 下面我說出經常使用的三種
方法並一一分析其利與弊
一 用如下語句:

mysql_query("select max(id) from t1",$link);

使用這種方法時 咱們獲得得是 id最大的值 的確時最後一個 但當多連接線程時
這個最大的id並不必定是 咱們插入的因此這個不利用域線程
二 用如下函數:

msyql_insert_id();

當系統執行完INSERT後,再執行SELECT時,可能已經被分發到了不一樣的後端服務器
,若是你使用的編程語言是PHP的話,此時應該經過 mysql_insert_id()來獲得最新插入的id,
每次INSERT結束後,
其實對應的autoincrement值就已經計算好返回給PHP 了,你無需再發出一次獨立的查詢,
直接用mysql_insert_id()就能夠了
這個函數很好用 當咱們插入一條語句時 它自動返回了 最後的id值
而且此函數 僅對當前連接有用 也就是說 它是多用戶安全型的
因此咱們常常用此函數;
但此函數有一個問題 就是 當id 爲bigint 型時 就不在起做用了 因此 如今 正在用此函數的請當心了
不過 咱們平時不多遇到這樣的問題,因此能夠不用管它
三:用一下查詢

msyql_query("select last_insert_id()");

last_insert_id() 是mysql 一個函數 也是 對當前連接起效
此用法 解決了 mysql_insert_id () 中遇到的 bigint 型問題


總結: 根據以上分析 第一種方法 儘可能少用 多用第二種方法 當遇到特殊狀況時 能夠考慮用第三種方法 mysql

相關文章
相關標籤/搜索