将csv文件导入数据库 - 使用逗号表示值

时间:2014-01-02 08:59:07

标签: php mysql csv import comma

我正在尝试将csv文件导入我的数据库。它正在工作,但问题是我有一个列,即“address1”和“address2”,可能有逗号。例如:

194 Chavez compound, Something City

发生了什么事情是194查韦斯化合物在“地址1”中,而Something City在“地址2”中。整个地址只能在“地址1”中。

这是我在数据库中导入的代码:

    do { 
        if ($data[0]) { 
            mysql_query("INSERT INTO awb (recNAME, company, address1, address2, city, province, postalCODE, contactNO, email, commodity, type, weight, length, width, height, decVAL, specINSTRUC, shipREF, payMETHOD, packNO, trackNO) VALUES 
                ( 
                    '".addslashes($data[0])."', 
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."', 
                    '".addslashes($data[3])."',
                    '".addslashes($data[4])."', 
                    '".addslashes($data[5])."',
                    '".addslashes($data[6])."', 
                    '".addslashes($data[7])."',
                    '".addslashes($data[8])."', 
                    '".addslashes($data[9])."',
                    '".addslashes($data[10])."', 
                    '".addslashes($data[11])."',
                    '".addslashes($data[12])."', 
                    '".addslashes($data[13])."',
                    '".addslashes($data[14])."', 
                    '".addslashes($data[15])."',
                    '".addslashes($data[16])."', 
                    '".addslashes($data[17])."',
                    '".addslashes($data[18])."',    
                    '".addslashes($data[19])."',                    
                    '".addslashes($data[20])."' 
                ) 
            "); 
        } 
    } while ($data = fgetcsv($handle,1000,",","'")); 

1 个答案:

答案 0 :(得分:1)

正如其中一位评论员建议的那样,请尝试使用LOAD DATA INFILE:

LOAD DATA INFILE '[file name]' INTO TABLE '[table name]'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'

如果您的CSV文件有标题行,您还需要添加此子句:IGNORE 1 LINES。