php中如何执行批量插入数据到mysql
Jun 06, 2016 pm 08:36 PM
mysql
php
大量
批量插入
<code>$arr = Array ( [0] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1427940803 [pv_total] => 0.00 ) [1] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428477888 [pv_total] => 0.00 ) [2] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428475892 [pv_total] => 0.00 ) [3] => Array ( [u_id] => 2 [userid] => feng001 [status] => 3 [confirm_time] => 1428482901 [pv_total] => 0.00 ) [4] => Array ( [u_id] => 2 [userid] => feng001 [status] => 3 [confirm_time] => 1428483116 [pv_total] => 0.00 ) [5] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428483542 [pv_total] => 20.00 ) [6] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428475881 [pv_total] => 40.00 ) [7] => Array ( [u_id] => 5 [userid] => feng005 [status] => 3 [confirm_time] => 1428474458 [pv_total] => 100.00 ) [8] => Array ( [u_id] => 4 [userid] => feng004 [status] => 3 [confirm_time] => 1428475275 [pv_total] => 100.00 ) [9] => Array ( [u_id] => 3 [userid] => feng002 [status] => 3 [confirm_time] => 1428475478 [pv_total] => 100.00 ) [10] => Array ( [u_id] => 2 [userid] => feng001 [status] => 3 [confirm_time] => 1428475622 [pv_total] => 100.00 ) [11] => Array ( [u_id] => 6 [userid] => feng006 [status] => 3 [confirm_time] => 1428479200 [pv_total] => 100.00 ) [12] => Array ( [u_id] => 6 [userid] => feng006 [status] => 3 [confirm_time] => 1428483519 [pv_total] => 40.00 ) ); $count = count($res); $sql = "insert into users(periods,uid,username,pv) VALUES "; foreach($res as $key=>$vo){ if($key == $count-1){ $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total'].")"; }else{ $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total']."),"; } }; M()->query($sql); </code>
登入後複製
登入後複製
这样能行吗?没怎么用过批量操作数据库,请指导。
回复内容:
<code>$arr = Array ( [0] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1427940803 [pv_total] => 0.00 ) [1] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428477888 [pv_total] => 0.00 ) [2] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428475892 [pv_total] => 0.00 ) [3] => Array ( [u_id] => 2 [userid] => feng001 [status] => 3 [confirm_time] => 1428482901 [pv_total] => 0.00 ) [4] => Array ( [u_id] => 2 [userid] => feng001 [status] => 3 [confirm_time] => 1428483116 [pv_total] => 0.00 ) [5] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428483542 [pv_total] => 20.00 ) [6] => Array ( [u_id] => 1 [userid] => feng003 [status] => 3 [confirm_time] => 1428475881 [pv_total] => 40.00 ) [7] => Array ( [u_id] => 5 [userid] => feng005 [status] => 3 [confirm_time] => 1428474458 [pv_total] => 100.00 ) [8] => Array ( [u_id] => 4 [userid] => feng004 [status] => 3 [confirm_time] => 1428475275 [pv_total] => 100.00 ) [9] => Array ( [u_id] => 3 [userid] => feng002 [status] => 3 [confirm_time] => 1428475478 [pv_total] => 100.00 ) [10] => Array ( [u_id] => 2 [userid] => feng001 [status] => 3 [confirm_time] => 1428475622 [pv_total] => 100.00 ) [11] => Array ( [u_id] => 6 [userid] => feng006 [status] => 3 [confirm_time] => 1428479200 [pv_total] => 100.00 ) [12] => Array ( [u_id] => 6 [userid] => feng006 [status] => 3 [confirm_time] => 1428483519 [pv_total] => 40.00 ) ); $count = count($res); $sql = "insert into users(periods,uid,username,pv) VALUES "; foreach($res as $key=>$vo){ if($key == $count-1){ $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total'].")"; }else{ $sql .= "(".$periods.",".$vo['u_id'].",'".$vo['userid']."',".$vo['pv_total']."),"; } }; M()->query($sql); </code>
登入後複製
登入後複製
这样能行吗?没怎么用过批量操作数据库,请指导。
###代码大概像这样吧,手打的,没有测试###
<code>php</code><code>$sql = 'INSERT INTO TABLE (`u_uid`, `userid`,`status`,`confirm_time`,`pv_total`) VALUES'; foreach($arr as $k => $item) { $sql .= '(' . $item['u_uid'] . ',' . $item['userid'] . ',' . $item['status'] . ',' . $item['confirm_time'] . ',' . $item['pv_total'] . '),'; } $sql = rtrim($sql, ','); </code>
登入後複製
对,就是这样的。
<code>sql</code><code>INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....),(值1, 值2,....),(值1, 值2,....) </code>
登入後複製
其实编程这玩意儿,你试试看就知道可不可行了。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

如何修復 MySQL 8.4 上的 mysql_native_password 未載入錯誤

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發
