memory exhausted mysql 42000 1064

背景:

导入excel时候报错,已经将memory_limit调为-1 ,upload_max_filesize 调为-1 post_max_size调为-1 还有 max_execution_time 调为0 以上的参数都是php.ini在上传大文件的时候容易出现的上传文件的大小以及文本处理时间的超额的问题。但是问题是配置完以上东西以后,轮到mysql那边报错。

解决过程:

上网查了下,好像是一次执行过多的sql语句问题或者语句里包含的blob或者longblob,超过最大允许封装,参数是max_allow_packed,还有wait_timeout和interactive_timeout(这个后两个参数我试了,设了Windows下的最大值),依然是报错。

我倒回去看自己是tp5的insert_all,一次性将excel的文件内容插进数据库。

最后我想了个办法,my.ini不修改的方法,其实思路也很简单,就是讲$insertdata的分为每次insert1000条然后循环。就解决了。

关键是用这个 $insertall = array_chunk($insertdata,$b);$b = ceil(count($insertdata)/1000);//(ceil上舍)

foreach($insertall  as $k =>$v){

insRes= insertALL($insertall);

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值