thinkphp5-循环插入百万条数据
个人博客https://xgs888.top/post/view?id=53
//由于是跨服务器的两个数据库需要建一个数据模型
<?php
namespace appindexcontroller;
use thinkController;
use appindexmodelindex 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 appindexmodel;
use thinkModel;
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";
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
copyright © 2008-2019 亿联网络 版权所有 备案号:粤ICP备14031511号-2
