我正在尝试将 csv 文件导入到我的数据库中。它可以工作,但问题是我有一个列,即“address1”和“address2”,其中可能有逗号。示例是:
194 Chavez compound, Something City
发生的事情是 194 Chavez 化合物位于“address1”,Something City 位于“address2”。整个地址只能在“address1”中。
这是我在数据库中导入的代码:
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,",","'"));
最佳答案
正如一位评论者所建议的,尝试使用 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。
关于php - 将 csv 文件导入数据库 - 带逗号的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879398/