Lumen:有没有将CSV数据导入数据库的包?

时间:2021-05-12 09:39:17

标签: php mysql lumen import-csv

我编写了以下代码来导入数据库中的 CSV 数据:

if(($request->file("csv") !== null)){
            $filename=$_FILES["csv"]["tmp_name"];
             if($_FILES["csv"]["size"] > 0)
             {
                $file = fopen($filename, "r");
                  while (($getData = fgetcsv($file, 10000, ",")) !== FALSE)
                   {
                    DB::table('users')->updateOrInsert(
                        ['email' => $getData[1]],
                        ['name' => @$getData[0], 'phone' => @$getData[2], 'address'=> @$getData[3]]
                    );
                   }
                   fclose($file);
             }
          }

但是在插入时会出现以下错误:

<块引用>

SQLSTATE[HY000]:一般错误:1366 字符串值不正确:'\xE0\xA5\xC7\x9EDO...' 列 'email' 在第 1 行(SQL:插入到 users({{ 1}}, email, name, phone) 值 (�ǞDO97*�~��ɸ8�O�c|n���E�

为什么我会收到这个错误?是否有任何 Lumen 包可以将 CSV 导入具有适当文档的数据库?

1 个答案:

答案 0 :(得分:0)

您遇到了编码问题。您的表的编码(排序规则)不允许插入某些 UTF 字符。您需要更改表格并将其排序规则更改为 utf8mb4