用PHP批量插入数据到MySQL中

1 .插入大批量数据时,要先保证数据库的可以接收来自server端的数据

set global max_allowed_packet = 2*1024*1024*10;

查看目前配置
show VARIABLES like '%max_allowed_packet%';


修改方法:
1) 方法1
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
max_allowed_packet = 20M
如果找不到my.cnf可以通过
mysql --help | grep my.cnf
去寻找my.cnf文件。
2) 方法2
(很妥协,很纠结的办法)
进入mysql server
在mysql 命令行中运行
set global max_allowed_packet = 2*1024*1024*10
然后关闭掉这此mysql server链接,再进入。
show VARIABLES like '%max_allowed_packet%';
查看下max_allowed_packet是否编辑成功


2.

<pre name="code" class="php">$values=array();
		 // print_r($array);
		  foreach($array as $k => $v)
		  {
			  if($v['Enabled']==1)
			  {
				  $values[] = $v['Id'] .",'".$v['LoginName'] . "', '" . $v['EnglishName'] . "',' " 
			  . $v['ChineseName']. "',' " . $v['FullName']."','". $v['Gender']."','"
			  . $v['Birthday']."',". $v['DepartmentId'].",'". $v['DepartmentName']."',"
			  . $v['OfficialId'].",'". $v['OfficialName']."',". $v['GroupId'].",'"
			  . $v['GroupName']."',". $v['PostId'].",'". $v['PostName']."',". $v['TypeId'].",'"
			  . $v['TypeName']."',". $v['StatusId'].",'". $v['StatusName']."',". $v['WorkDeptId'].",'"
			  . $v['WorkDeptName']."','". $v['MobilePhoneNumber']."','". $v['BranchPhoneNumber']."','"
			  . $v['T']."','true'";
			  }

 
for($i=1;$i<$sum/10000+1;$i++)
		  {
			$sql="INSERT IGNORE INTO bas  VALUES  ";
			for($j=($i-1)*10000;$j<$i*10000&&$j<$sum;$j++)
			{
				$sql=$sql."(".$values[$j]."),";
			}
			$sql=substr($sql,0,-1);
			$exec_res=$this->db->query($sql);
		  } 


每次插入1w条。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值