周大胖子 发表于 2019-7-3 10:58:34

laravel 大量数据 插入失败

遇到一个奇葩的报错 SQLSTATE: General error: 1390 Prepared statement contains too many placeholders

这个报错怎么回事呢:

1. 我利用DB门面进行了数据批量导入【上传xls文件】。
2. 使用的 语句是:
// $res = DB::table($xlistName)->insert($array);3.实践证明 单次导入是正常的。数据量小于5000条 一点问题没有;
4.后来我上传了大概两万多条这条语句就报错 1390了。其实就是 插入的列和插入的行 m*n 大于 65535
5.解决方法[失败版]: 我看了很多 上来就用laravel 的 chark 的。 好神奇的样子。就是我看不懂
6.当时的解决办法:利用 array_chunk 进行数组拆分


                //   获取新建的表名
            $xlistName = Cache::get('xlist');

             // 拆开了再存[ 一次性插入过大就凉凉 所以拆开 ] $mmm 是 需要载入的数据
            $t = array_chunk($mmm,4000);

             // 分批次批量导入

            foreach ($t as $v) {

                DB::table($xlistName)->insert($v);

            }




页: [1]
查看完整版本: laravel 大量数据 插入失败