php+mysql實現數據分批插入

上周需要將云端的數據有條件的錄入到mysql中,最開始是使用遍歷數據然后一條條的插入的笨方法,結果速度慢的要死,所以又隨便寫了個笨方法2.0,記錄一下自己菜鳥的成長歷程。同時這也是在博客園的第一篇文章,目的僅僅是單純的記錄一下自己的狗屎代碼,因為我是菜鳥,哈哈。。。

比如說有10001條數據,每次插入1000條,分11次插入完成,代碼如下:

 1 <?php
 2 /**
 3  * Created by PhpStorm.
 4  * User: Soup
 5  * Date: 2016/12/29
 6  * Time: 21:04
 7  */
 8 
 9 $mysqli = new mysqli('localhost','root','123456','test');
10 
11 
12 
13 if ($mysqli->connect_error) {
14     die('Connect Error (' . $mysqli->connect_errno . ') '
15         . $mysqli->connect_error);
16 }
17 
18 /*
19  *@param $data array 要插入的數據
20  *@param $each int 每次插入的條數
21  */
22 function batchInsert($data,$each){
23 
24     $num = count($data);        // 數據總數
25     $step = ceil( $num/$each);  // insert執行總次數
26 
27 
28     $j = 1;
29     $s = $step;
30 
31     foreach ($data as $val){    // 目前僅僅是起到循環作用
32         if($j > $step) break;
33         $arr2 = array_slice($data, ($step - $s) * $each, $each);     // 每次取100條
34         $sql = "insert into batch VALUES ";
35         foreach($arr2 as $v){
36             $exist = $GLOBALS['mysqli']->query("select * from batch where number = '$v' limit 1 "); // 檢查要插入的數據是否已存在
37             $row = $exist->fetch_array(MYSQLI_ASSOC);
38             if(empty($row)){
39                 $sql .= "(null,$v,now()),";     // 將sql語句拼接起來
40             }
41         }
42         $sql = rtrim($sql, ',');
43         $result =  $GLOBALS['mysqli']->query($sql);
44         echo $sql,'<br>';
45 46 47         $j++;
48         $s--;
49     }
50     return $result;
51 }
52 
53 // 先測試簡單的數字插入
54 for ($i = 1;$i <= 505;++$i){
55     $arr[$i] = $i;
56 }
57 
58 var_dump(batchInsert($arr,100));

測試505條數據,每次插入100條,分6次插入完成。

轉載于:https://www.cnblogs.com/soup/p/6235090.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285047.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RIL接聽電話沒有聲音的問題 [ RIL_Answer | RIL_SetAudioDevices ]

沒有什么好說明的&#xff0c;直接上代碼&#xff1a; RIL_Answer(m_hRil); RILAUDIODEVICEINFO audioDeviceInfo; audioDeviceInfo.cbSize sizeof(audioDeviceInfo); audioDeviceInfo.dwParams RIL_PARAM_ADI_ALL; audioDeviceInfo.dwRxDevic…

[轉]敏捷開發之Scrum掃盲,及敏捷開發中XP與SCRUM的區別

敏捷開發之Scrum掃盲篇 現在敏捷開發是越來越火了&#xff0c;人人都在談敏捷&#xff0c;人人都在學習Scrum和XP… 為了不落后他人&#xff0c;于是我也開始學習Scrum&#xff0c;今天主要是對我最近閱讀的相關資料&#xff0c;根據自己的理解&#xff0c;用自己的話來講述S…

C語言試題175之實現選擇排序算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:實現選擇…

最流行的 .NET 反編譯工具合集

編譯和反編譯 .NET 中的編譯是把開發人員寫的 C# 代碼轉化為計算機可理解的代碼的過程&#xff0c;也就是中間語言代碼&#xff08;IL代碼&#xff09;。在這個過程中&#xff0c;C# 源代碼被轉換為可執行文件&#xff08;exe或者dll 文件&#xff09;。反編譯則和編譯相反&am…

【ArcGIS Pro微課1000例】0009:ArcGIS Pro地理配準完整教程(建議收藏)

掃描得到的地圖數據通常不包含空間參考信息,航片和衛片的位置精度也往往較低,這就需要通過具有較高位置精度的控制點將這些數據匹配到用戶指定的地理坐標系中,這個過程稱為地理配準。 地理配準即就是通過建立數學函數將柵格數據集(掃描后的圖像)中各點的位置與標準空間參…

Intent跳轉傳list集合

先把List<>改為ArrayList<> ArrayList<Good> listnew ArrayList<Good>(); Intent intent new Intent(MainActivity.this,InfoActivity.class); intent.putExtra("list", list); startActivity(intent); Intent intent get…

Linux中的selinux

#1.selinux內核級加強型防火墻1&#xff09;針對文件&#xff0c;會對系統中每個文件添加安全上下文&#xff08;context&#xff09;2)針對進程&#xff0c;會對系統中的每個進程添加安全上下文&#xff08;context&#xff09;3&#xff09;會在系統服務上設定sebool開關4&am…

C語言試題176之實現歸并排序算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:實現歸并…

三款國產計算機日常辦公體驗對比

近年來&#xff0c;信創事業開展的如火如荼&#xff0c;多款CPU和操作系統均在機關單位和央企批量應用。目前&#xff0c;信創電腦主要應用場景是日常辦公&#xff0c;特別是對機關單位而言&#xff0c;文檔、表格、PPT、PDF、瀏覽器等軟件堪稱辦公必備。下面&#xff0c;我們就…

[轉]Flask --- 框架快速入門

From&#xff1a;http://docs.jinkan.org/docs/flask/quickstart.html Flask 用戶指南&#xff1a;http://docs.jinkan.org/docs/flask/index.html w3cschool.cn 的 Flask 教程&#xff1a;https://www.w3cschool.cn/flask/ 《Flask Web開發&#xff1a;基于Python的Web應用…

【ArcGIS Pro微課1000例】0010:ArcGIS Pro導入ArcMap樣式符號庫——以國土三調樣式為例

樣式是用于存儲符號、顏色、配色方案、標注放置和布局項目的容器。 它們可以提升地圖、場景和布局的一致性和標準化程度。 您創作地圖、場景和布局時所使用的符號庫和顏色選取器由存儲在樣式中的項目填充。 ArcMap、ArcGlobe 或 ArcScene 的桌面樣式不能直接在 ArcGIS Pro 中使…

Windows WMIC命令使用詳解(附實例)

第一次執行WMIC命令時&#xff0c;Windows首先要安裝WMIC&#xff0c;然后顯示出WMIC的命令行提示符。在WMIC命令行提示符上&#xff0c;命令以交互的方式執行執行“wmic”命令啟動WMIC命令行環境。這個命令可以在XP或 .NET Server的標準命令行解釋器&#xff08;cmd.exe&#…

MAC usb啟動盤制作

1.從App Store 下載OS 2.磁盤工具格式化磁盤默認即可 3. 為啥截圖&#xff0c;因為有些是不一樣的&#xff0c;建議使用 Tab建&#xff0c; 未命名則是你移動U盤命名的名稱。 4.完成&#xff1a;所有的命令完成的話&#xff0c; 終端界面中會出現 Erasing Disk: 0%...10%...…

【ArcGIS Pro微課1000例】0011:ArcGIS Pro范圍內匯總工具的巧妙使用——以甘肅省各地區內河流總長度計算為例

文章目錄 問題描述范圍內匯總工具介紹# 案例實現問題描述 統計甘肅省各個地區界內河流的總長度,如下圖所示。 范圍內匯總工具介紹 在ArcMap中可以實現河流總長度的統計,具體操作可以參考:【ArcGIS風暴】ArcGIS獲取一個省各個地區界內的河流的總長度–以甘肅省為例,在ArcG…

C語言試題177之實現二分查找算法,折半查找算法

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款刷算法、筆試、面經、拿大公司offer神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 本實例…

力扣(leetcode)第20題有效的括號(Python)

20.有效的括號 題目鏈接&#xff1a;20.有效的括號 給定一個只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串 s &#xff0c;判斷字符串是否有效。 有效字符串需滿足&#xff1a; 左括號必須用相同類型的右括…

30分鐘掌握ES6/ES2015核心內容

2019獨角獸企業重金招聘Python工程師標準>>> ECMAScript 6&#xff08;以下簡稱ES6&#xff09;是JavaScript語言的下一代標準。因為當前版本的ES6是在2015年發布的&#xff0c;所以又稱ECMAScript 2015。 也就是說&#xff0c;ES6就是ES2015。 雖然目前并不是所有瀏…

Windows 11 22H2 22621.290 和 22622.290 推送

面向 Beta 頻道的 Windows 預覽體驗成員&#xff0c;微軟現已推送 Windows 11 預覽版 Build 22621.290 和 22622.290。微軟宣布 Beta 頻道Windows 11 預覽版啟用全新體驗&#xff0c;分為兩組進行測試。通過兩組 Windows 預覽體驗成員的使用數據和反饋&#xff0c;以更好的測試…

js數組中的find、filter、sort

準備測試數據 var data [{name:"Jackie",id: "122"}, {name:"Tony2",id: "121"}, {name:"Tony",id: "121"}]; find 查找 返回第一個符合條件的結果 data.find(user>user.id121)--結果 {name: "Tony2&q…

【ArcGIS Pro微課1000例】0012:ArcGIS Pro屬性表中文亂碼完美解決辦法匯總

如圖所示,安裝完ArcGIS Pro后,由于計算機系統和應用軟件字符編碼的問題,導致加載矢量數據并打開屬性表后,會發現中文字段出現了亂碼。 屬性表中文亂碼: 屬性表中文正常: 事實上,ArcMap中也會出現中文屬性表亂碼的情況。 亂碼的出現會給學習和工作帶來很大不便,因此本…