php獲得剛插入資料的id 的幾種方法

來源:互聯網
上載者:User
這篇文章主要介紹了關於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 型問題。

總結: 根據以上分析 第一種方法 盡量少用 多用第二種方法 當遇到特殊情況時 可以考慮用第三種方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.