關於THINKPHP的addAll支援的最大資料量

2022-07-10 05:51:10 字數 847 閱讀 7637

thinkphp中的model操作有兩個方法:add()和addall

1

$user = m("user"); //

例項化user物件

2$data['name'] = 'thinkphp';

3$data['email'] = '[email protected]';

4$user->add($data);5

6$datalist = array('name'=>'thinkphp','email'=>'[email protected]');

7$datalist = array('name'=>'onethink','email'=>'[email protected]');

8$user->addall($datalist);

addall方法可以做到批量新增資料的功能,也就是mysql的這種用法:

insert into tbl_name (a,b,c) values(1,2,3),(4,5,6),(7,8,9);
資料量很多情況下盡量選擇批量插入而不是迴圈逐條插入,否則你的資料庫會吃不住掛掉。

不過如果你想當然的將所有資料全部存入乙個陣列並進行addall也同樣會面臨掛掉的情況,這是為什麼呢?

原因就是mysql中max_allowed_packet變數的配置限制了上傳sql語句的長度,在mysql配置中將他配置大一點就行了

max_allowed_packet = 100m

同時在插入資料時也做好批量插入的長度限制,畢竟你不知道什麼時候資料會變成百萬級別的。

關於arrayList的add和addall

如果連線2個arraylist,比如a和b,如果直接寫a.addall b 有可能連線不上,最常見的方法是定義乙個新的arraylist c,再c.addall a 和c.addall b arraylist是乙個實現可變長陣列,繼承abstractlist類,實現所有的list介面,還實現了ran...

關於arrayList的add和addall

花了一周時間,重構了系統中最重要的一段下發列印邏輯的 理清了各型別間的呼叫關係,得意之際,測試告訴 資料異常了,花了5個小時的測試,終於發現了問題,用錯了arraylist的addall方法,下面列舉下add和addall方法。arraylist是乙個實現可變長陣列,繼承abstractlist類,...

關於thinkphp的模板輸出

thinkphp輸出模板的話很簡單其實很簡單,首先的話是要定義乙個變數 name2 maobaobao 定義乙個變數 this assign name1 name2 把php的assign方法裡面的 name2變數賦值給前端html中的 name1變數 html模板 注意,這裡的name1變數是對應...