【问题标题】:Lumen: Is there any package to import CSV data to database?Lumen:有没有将 CSV 数据导入数据库的包?
【发布时间】:2021-05-12 09:39:17
【问题描述】:

我已经编写了以下代码来导入数据库中的 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 (email, name, phone, address) 值 (�ǞDO97*�~��ɸ8�O�c|n���E�

为什么会出现此错误?是否有任何 Lumen 包可以将 CSV 导入具有适当文档的数据库?

【问题讨论】:

    标签: php mysql lumen import-csv


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-02
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多