MYSQL加载数据本地Infile&特殊字符(&PHP)

问题描述:

我想了解如何编写查询将我的goodreads.com图书清单(csv)导入到我自己的数据库中。我使用PHP。MYSQL加载数据本地Infile&特殊字符(&PHP)

$query = "load data local infile 'uploads/filename.csv' into table books 
      RETURN 1 LINES 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '\"' 
    LINES TERMINATED BY '\n' 
    (Title, Author, ISBN)"; 

这导致在错误的列中的数据,我也不能得到书号,不管我怎么努力,猜测等号(=)符号引发了一些问题。

下面是CSV的前两行:

Book Id,Title,Author,Author l-f,Additional Authors,ISBN,ISBN13,My Rating,Average Rating,Publisher,Binding,Number of Pages,Year Published,Original Publication Year,Date Read,Date Added,Bookshelves,Bookshelves with positions,Exclusive Shelf,My Review,Spoiler,Private Notes,Read Count,Recommended For,Recommended By,Owned Copies,Original Purchase Date,Original Purchase Location,Condition,Condition Description,BCID 
11487807,"Throne of the Crescent Moon (The Crescent Moon Kingdoms, #1)","Saladin Ahmed","Ahmed, Saladin","",="0756407117",="9780756407117",0,"3.87","DAW","Hardcover","288",2012,2012,,2012/02/19,"to-read","to-read (#51)","to-read",,"",,,,,0,,,,, 

我想要做的是只导入了标题,作者和ISBN所有书具有以下字段的表:ID(自动),标题,作者,isbn。我想排除第一行,因为我不想列标题,但是当我尝试过每次都失败时。

我的查询出了什么问题?

不幸的是,如果你想使用本机MySQL CSV解析器,你将不得不创建一个与CSV文件的列数相匹配的表。只需在导入完成时删除不必要的列。

+0

这个工作,但我仍然感到惊讶没有一个更直观的方式来完成它。感谢您及时的回复! – 2012-03-15 18:02:17