1、沒谷歌到php可以用的直接方法,不過可以獲取批量插入的第一個自增id
10余年的華州網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整華州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“華州網(wǎng)站設(shè)計”,“華州網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
2、假設(shè)批量插入的數(shù)據(jù)的自增ID是連續(xù)的,則可以通過第一個自增ID獲取所有自增ID
3、測試批量插入的數(shù)據(jù)的自增ID是否是連續(xù)的,即插入過程中,單獨插入其他數(shù)據(jù),批量插入的自增ID是否連續(xù)
4、生成批量插入10w條數(shù)據(jù)的sql
5、navicat打開兩個頁面,一個是上面的sql,一個是一條單獨插入的sql(這條sql的test_id,要大于上面sql里隨機數(shù)的最大值,方便查看)
6、所以可以使用2中的方式獲取批量插入的所有自增ID
2種辦法
1.修改你的數(shù)據(jù)庫表,將ID設(shè)為自增長,注:只有主鍵才可以設(shè)置為自增長
id自增是由mysql負責(zé)的,設(shè)置id AUTO_INCREMENT 插入時不用插入id值就能實現(xiàn)自增CREATE TABLE `table ` (`id` INT(8) NOT NULL AUTO_INCREMENT, PRIMARY KEY(`id`));
2.代碼中進行處理
Statement ps;
ResultSet rs;
int id = 0;
..................
String sql="select max(id) as id from message";
rs = ps.executeQuery(sql);//查詢出最大ID
if(rs.next){//如果有ID,原有ID+1
id = rs.getInt("id")+1;
}else{//否則 ID 初始為0
id = 0;
}
//下面接你寫的代碼就OK了
PreparedStatement ps;
String sql="insert message (id,name,msg) value(?,?,?)"
ps.setString(1,id);
ps.setString(2,name);
ps.setString(3,msg);
很多時候數(shù)據(jù)庫中表的主鍵都是自增id,
而在連續(xù)插入數(shù)據(jù)時,需要前一條的自增id時候,可以使用PHP中的
mysql_insert_id();函數(shù)
如果我的回答沒能幫助您,請繼續(xù)追問。
您也可以向我們團隊發(fā)出請求,
怎么在thinkphp添加數(shù)據(jù)時獲取自動增長的id?
下面是TP5的方法,TP3的在添加后變量直接就獲取了。添加數(shù)據(jù)后如果需要返回新增數(shù)據(jù)的自增主鍵,可以使用 getLastInsID 方法:
Db::name('user')-insert($data);
$userId = Db::name('user')-getLastInsID();或者直接使用 insertGetId 方法新增數(shù)據(jù)并返回主鍵值:
Db::name('user')-insertGetId($data);
ThinkPHP
ThinkPHP是一個免費開源的,快速、簡單的面向?qū)ο蟮妮p量級PHP 開發(fā)框架,遵循?Apache2 開源協(xié)議發(fā)布,是為了簡化企業(yè)級應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的。
基本特性
簡單易用的MVC模式 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
模型(M):模型的定義由Model類來完成。Model類位于項目目錄下面的LibModel目錄。
控制器(C):應(yīng)用控制器(核心控制器)和Action控制器都承擔(dān)了控制器的角色,區(qū)別在于Action控制器完成業(yè)務(wù)過程,而應(yīng)用控制器(App類)負責(zé)調(diào)度控制。Action控制器位于項目目錄下面的LibAction目錄。
視圖(V):模板的實現(xiàn)是和框架無關(guān)的,做到了100%分離,可以獨立預(yù)覽和制作。模板目錄位于項目目錄下面的Tpl目錄。
2.獨創(chuàng)的核心編譯和二分法項目編譯機制
ThinkTemplate是一個使用了XML標簽庫技術(shù)的編譯型模板引擎,支持兩種類型的模板標簽,使用了動態(tài)編譯和緩存技術(shù),而且支持自定義標簽庫。
如果是固定以10開頭,那么可以不要修改數(shù)據(jù)庫的自增ID,新增一個編號ID字段,這個編號ID的格式是:'10'(你定義的編號格式)+自增ID,這樣你就能隨意變換了。每次插入一條數(shù)據(jù)成功后,你是可以獲取到當(dāng)前插入的ID的,取到這個ID,然后組合重新更新數(shù)據(jù)庫即可。
希望對你有所幫助~