thinkphp5-迴圈插入百萬條資料
阿新 • • 發佈:2018-12-24
//由於是跨伺服器的兩個資料庫需要建一個數據模型 <?php namespace app\index\controller; use think\Controller; use app\index\model\index as indexModel; class Index extends Controller { public function insertdata() { ini_set('max_execution_time', '0');//設定永不超時,無限執行下去直到結束 $model = new indexModel(); $datas = []; //迴圈插入一百萬 for ($i=10000; $i <1000000 ; $i+=10000) { # code... $j = $i-10000; $data = db('phone_record')->where("id>=$j and id<$i ")->select(); foreach ($data as $key => $value) { # code... $datas[$key]['phone_no'] = $value['phone_no']; $datas[$key]['mac'] = $value['mac']; $datas[$key]['area'] = $value['area']; $datas[$key]['source_station'] = $value['source_station']; $datas[$key]['up_time'] = $value['up_time']; $datas[$key]['rad_time'] = $value['rad_time']; } $model->saveAll($datas); unset($datas);//銷燬插入的資料陣列 } /*$re = $model->select(); if($re){ //模型查詢需要轉換成陣列,查詢集合需要用collection() $list = collection($re)->toArray(); } print_r($list);*/ } }
index.php模型
<?php namespace app\index\model; use think\Model; class index extends model{ protected $connection = [ // 資料庫型別 'type' => 'mysql', // 資料庫連線DSN配置 'dsn' => '', // 伺服器地址 'hostname' => '127.0.0.1', // 資料庫名 'database' => 'radius', // 資料庫使用者名稱 'username' => 'root', // 資料庫密碼 'password' => '', // 資料庫連線埠 'hostport' => '', // 資料庫連線引數 'params' => [], // 資料庫編碼預設採用utf8 'charset' => 'utf8', // 資料庫表字首 'prefix' => '', ]; protected $table = 'phone_record'; }