【问题标题】:Import huge csv with load data local infile where some fields are enclosed by "导入带有加载数据本地 infile 的巨大 csv,其中某些字段由 "
【发布时间】:2015-07-30 15:17:07
【问题描述】:

我正在尝试导入巨大的 csv 文件,而不必将它们拆分并使用 phpmyadmin。

这是我的 csv 格式的示例(有些字段有“”,有些没有)我查看了所有其他堆栈溢出答案,但似乎没有我的情况,有些字段有语音标记,有些没有。

这是我的 csv 示例,第一行作为列名:

aw_product_id,merchant_product_id,merchant_category,aw_deep_link,merchant_image_url,search_price,description,product_name,merchant_deep_link,aw_image_url,merchant_name,merchant_id,category_name,category_id,delivery_cost,currency,store_price,display_price,data_feed_id,web_offer,brand_name
3156121231,462496,/cycle/clothing/ladies/gloves,http://www.awin1.com/pclick.php?p=3156121231&a=117981&m=2485,http://products.activinstinct.com/y2014/m09/462496/14723969-n.jpg,33.49,"A close fitting fully waterproof glove with ProGel palm padding for better cushioning on the handlebars.Features:*Waterproof, windproof, breathable construction*ProGel palm padding*Cuff adjuster for precise fitting*Critically positioned reflective trims","ALTURA ProGel Waterproof Ladies Gloves",http://www.activinstinct.com/cycle/clothing/ladies/gloves/altura-progel-waterproof-ladies-gloves/,http://images.productserve.com/preview/5/2485/31/12/3156121231.jpg,ActivInstinct,2485,"Women's Accessories",149,3.95,GBP,,GBP33.49,2485,0,Altura

到目前为止,这是我的 php:

$pdo = new PDO($dsn, $user, $password, array(PDO::MYSQL_ATTR_LOCAL_INFILE=>1));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo->exec("LOAD DATA LOCAL INFILE 'example.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(aw_product_id,merchant_product_id,merchant_category,aw_deep_link,merchant_image_url,search_price,description,product_name,merchant_deep_link,aw_image_url,merchant_name,merchant_id,category_name,category_id,delivery_cost,currency,store_price,display_price,data_feed_id,web_offer,brand_name);");

除非我删除由 " 括起来的内容,否则它会出错。删除后,它会提交大的 csv,但格式错误并且字段被放入错误的列中。

任何帮助将不胜感激,我确信它是一件小而愚蠢的事情,但这已经困扰我好几天了!

提前致谢!

【问题讨论】:

  • 关于导入数据的实际问题是什么?你根本没有解释你的问题。
  • 抱歉在我完成问题之前提交的表格
  • 您能否输出带有保证每个值的双引号的 CSV 文件?然后您可以删除“可选”,您的数据将在所有行中更加标准。
  • CSV 来自附属窗口,我希望最终自动化该过程,因此不确定这是否可能。如果我通过 phpmyadmin 上传较小的文件,它工作正常
  • 你能为你的数据库提供 CREATE 语句吗?

标签: php mysql csv import load


【解决方案1】:

我设法使用以下用于 laravel 的库 https://github.com/goodby/csv 导入 csv 文件

【讨论】:

    猜你喜欢
    • 2017-04-08
    • 1970-01-01
    • 2021-09-14
    • 2014-07-04
    • 2011-12-07
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2013-02-20
    相关资源
    最近更新 更多