柔晶美网络工作室

柔晶美网络工作室,倾心于web技术的博客站点

关注我 微信公众号

您现在的位置是: 首页 > 博客日记

PHP导入excel到MYSQL列数超过64报错:ERROR 1118 (42000): Row size too large.

2020-04-07 admin php  mysql  1512

查询系统在导入excel时,使用了laravel的查询构造器创建数据表:

DB::schema()->create($bm, function($table) use($zdsz){
$table->increments('id');//主键
foreach($zdsz as $value){
$table->string($value)->nullable();
}
});

在导入一个列数超过64列的EXCEL表时,发现无法创建表,报错如下 :

Row size too large. The maximum row size for the used table type

原以为是MYSQL数据库列数限制,或者字节数超出,但发现与字节数无关。换csv方式导入,依然报错。仔细看报错内容,总算明白原因了:表的所有字段使用了varchar类型,长度设置过长了。解决方法是,将其改成text,修改之后执行成功了:

DB::schema()->create($bm, function($table) use($zdsz){
$table->increments('id');//主键
foreach($zdsz as $value){
$table->text($value)->nullable();
}
});

由于今天才遇到这种列数超多的EXCEL表,一时没认真看报错内容,导致在解决过程中走了弯路。在此记录一下,附laravel导出数据库内容为excel时,数据太大内存超出的解决方法:

    //核心函数,
                    

文章评论


需要 登录 才能发表评论
热门评论
0条评论

暂时没有评论!