PHP擷取MySql新增記錄ID值的3種方法_PHP教程

來源:互聯網
上載者:User
一、使用語句:

複製代碼 代碼如下:mysql_query("select max(id) from t1",$link);
使用此方法得到的是 id最大的值,確為最後一個值,但當多連結線程時,這個最大的id並不一定是我們插入資料的自增id值,因此不適用於多線程。

二,使用函數:msyql_insert_id();

在PHP中,經常需要把插入資料庫中的id值取出來,而正好有這麼一個函數:
複製代碼 代碼如下:
<?php
//執行插入資料庫的語句
//……
$getID=mysql_insert_id();//$getID即為最後一條記錄的ID

//此函數的使用條件:
//1.假設欄位名稱為recordID
//2.欄位屬性須設為:auto_increment
//3.添加資料後使用
//$newID = mysql_insert_id();
//得到ID值
?>

PHP 函數 mysql_insert_id() 是返回在最後一次執行了 INSERT 查詢後,由 AUTO_INCREMENT 定義的欄位的值。

當系統執行完INSERT後,再執行SELECT時,可能已經被分發到了不同的後端伺服器,如果使用php編程,此時應該通過 mysql_insert_id()來得到最新插入的id,每次INSERT結束後,其實對應的autoincrement值就已經計算好返回給PHP 了,你無需再發出一次獨立的查詢,直接用mysql_insert_id()即可。
當插入一條語句時,它自動返回最後的id(mysql自增值)。
並且此函數僅對當前連結有用,即它是多使用者安全型的。
建議使用此函數;
問題:當id 為bigint 型時 就不在起作用了。

三、使用查詢

複製代碼 代碼如下:msyql_query("select last_insert_id()");
last_insert_id() 是mysql 一個函數 也是 對當前連結起效
此用法 解決了 mysql_insert_id () 中遇到的 bigint 型問題
總結:
推薦使用方法二,特殊情況下,可以考慮方法三。

http://www.bkjia.com/PHPjc/824827.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/824827.htmlTechArticle一、使用語句: 複製代碼 代碼如下: mysql_query("select max(id) from t1",$link); 使用此方法得到的是 id最大的值,確為最後一個值,但當多連結線程...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.