【问题标题】:How to import CSV to phpMyAdmin?如何将 CSV 导入 phpMyAdmin?
【发布时间】:2013-11-01 16:45:39
【问题描述】:

我正在尝试使用 phpMyAdmin 2.8.0.1 将 300 000 行的 CSV 文件导入 MySQL。压缩后文件大小为 8 MB。

我设法导入了大约 800 - 2000 行,然后 phpmyadmin 抛出“csv 中的无效字段计数”错误。

如果我从 csv 开头删除这些行并尝试导入,phpmyadmin 会设法导入之前引发错误的同一行。

也许这与 php 设置有关?我应该更改哪些值?

【问题讨论】:

    标签: mysql csv import phpmyadmin


    【解决方案1】:

    使用 LOAD INFILE 函数代替 phpMyAdmin - 它还管理更大的 CSV 文件。 (已经完成了大约 350.000 行没有问题。)

    PHP 示例:

    $sql = "LOAD DATA LOCAL
    INFILE 'test.csv'
    INTO TABLE my_table
    FIELDS
           TERMINATED BY ','
           OPTIONALLY ENCLOSED BY '\"';";
    $insert = mysql_query($sql);
    

    【讨论】:

    • 对我来说 LOAD INFILE 只获取第一行。我根据我的 CSV 设置所有参数。
    • 顺便说一下,phpMyAdmin 也支持 LOAD DATA(它是下拉选项之一)。
    • 直接从命令行执行此操作的示例:stackoverflow.com/questions/11430223/…
    【解决方案2】:

    你的 php.ini 可能有这样的默认设置

    post_max_size = 8M
    upload_max_filesize = 2M
    

    把它们改成

    post_max_size = 20M
    upload_max_filesize = 20M
    

    并重新启动您的服务。

    【讨论】:

    • 这些已经是 20M。但是 phpmyadmin 说 max: 10,240 KB
    • 我感觉,你是在共享主机中,没有root访问权限或访问你的php.ini配置文件,那么另一种方法是在你的应用程序root中创建一个.htaccess文件并添加以下行 php_value upload_max_filesize 20M php_value post_max_size 20M
    【解决方案3】:

    我建议尝试的第一件事是上传未压缩的 CSV 文件,看看效果如何。您可能确实遇到了 PHP 资源限制并且不需要先解压缩文件可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 2015-07-07
      • 2019-02-10
      • 2012-11-14
      • 2013-05-11
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多