|
一、使用語句:
復(fù)制代碼 代碼如下:mysql_query("select max(id) from t1",$link);
使用此方法得到的是 id最大的值,確為最后一個(gè)值,但當(dāng)多鏈接線程時(shí),這個(gè)最大的id并不一定是我們插入數(shù)據(jù)的自增id值,因此不適用于多線程。
二,使用函數(shù):msyql_insert_id();
在php中,經(jīng)常需要把插入數(shù)據(jù)庫中的id值取出來,而正好有這么一個(gè)函數(shù):
復(fù)制代碼 代碼如下:
<?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時(shí),可能已經(jīng)被分發(fā)到了不同的后端服務(wù)器,如果使用php編程,此時(shí)應(yīng)該通過 mysql_insert_id()來得到最新插入的id,每次INSERT結(jié)束后,其實(shí)對(duì)應(yīng)的autoincrement值就已經(jīng)計(jì)算好返回給php 了,你無需再發(fā)出一次獨(dú)立的查詢,直接用mysql_insert_id()即可。
當(dāng)插入一條語句時(shí),它自動(dòng)返回最后的id(mysql自增值)。
并且此函數(shù)僅對(duì)當(dāng)前鏈接有用,即它是多用戶安全型的。
建議使用此函數(shù);
問題:當(dāng)id 為bigint 型時(shí) 就不在起作用了。
三、使用查詢
復(fù)制代碼 代碼如下:msyql_query("select last_insert_id()");
last_insert_id() 是mysql 一個(gè)函數(shù) 也是 對(duì)當(dāng)前鏈接起效
此用法 解決了 mysql_insert_id () 中遇到的 bigint 型問題
總結(jié):
推薦使用方法二,特殊情況下,可以考慮方法三。
php技術(shù):PHP獲取MySql新增記錄ID值的3種方法,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。