十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile
创新互联建站长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为新沂企业提供专业的网站制作、网站建设,新沂网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数,
可以很简单的实现大批量数组数据的一次性插入。
[php] view plaincopy
$statement = "INSERT INTO table (title, type, customer) VALUES ";
foreach( $data as $row) {
$statement .= ' ("' . implode($row, '","') . '")';
}
不过大批量数据的插入,需要注意mysql在内存上有限制:
bulk_insert_buffer_size变量的默认大小为8M, 是指单个线程占用的大小限制,设置为0,表示不做限制。
$result=Array (0 = Array ( 'days' = 20131217 ) ,
1 = Array ( 'days' = 20131218 ) ,
2 = Array ( 'days' = 20131219 ) ,
3 = Array ( 'days' = 20131220 ) ,
4 = Array ( 'days' = 20131221 ) ,
5 = Array ( 'days' = 20131222 ) ,
6 = Array ( 'days' = 20131223 ) ,
);
foreach($result as $key=$value){
$newarr[]=$value['days']; //放入一维数组newarr
};
print_r($newarr);
//Array ( [0] = 20131217 [1] = 20131218 [2] = 20131219 [3] = 20131220 [4] = 20131221 [5] = 20131222 [6] = 20131223 )
其实就跟分页获取数据类似,网上这种例子就比较多了,分段获取你可以把当前获取的最大的自增id存储在文件、数据库或者memcache中,下一段用大于这个做条件,然后遍历完再更新这个数就行了。
既然是遍历,那就将数据库指针先移到第一条记录,逐次取出数据进行运算,下移指针,直到库结束。
通常的代码如下:
mysql_data_seek($result,0);//指针复位
while($row=mysql_fetch_array($result)) {
//对每行记录进行运算 处理,如 :echo $row['name']."br /";
}