我正在尝试将具有 100,000 行的大型 csv 文件导入 MySql 表。我收到错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'Dell'、''、'1610 Keeneland Dr'、''、'Helena'、'205-871-8006'、''、'35080 附近使用的正确语法-4114')' 在第 1 行
将代码从查询更改为回显:
'428A1B35-6913-497C-907A-BFB9C4983B04', 'Andrew Collins O'Dell', '', '1610 Keeneland Dr', '', 'Helena', '205-871-8006', '', '35080- 4114')
您可以看到在某些字段之间有额外的引号(2 个单勾号)和逗号。我想也许这是一个空的领域,但没有骰子。这是我的代码:
if (($handle = fopen("accounts.csv", "r")) !== FALSE)
{
while (($data = fgetcsv($handle, ",")) !== FALSE)
{
try
{
mysql_query("INSERT INTO accounts (id, name
,billing_address_street
, billing_address_city, billing_address_state, billing_address_postalcode
, phone_office, phone_alternate
, website) values ('".trim(com_create_Guid(), '{}')
."', '".$data[1]."', '".$data[46]."', '".$data[48]
."', '".$data[49]."', '".$data[50]."', '".$data[8]
."', '".$data[9]."', '".$data[52]."')")or die(mysql_error());
}
catch(MySqlException $e)
{
$e.getMessage();
}
}
fclose($handle);
}
我已经尝试在 fgetcsv 函数中输入字段附件参数“”。我的一些索引得到了一个未定义的偏移量。所以问题是是否有人知道额外的刻度和逗号可能来自什么。
旁注:它正在插入 250 条记录,尽管名称后面的所有内容都被一列或 2 列关闭,这当然是因为额外的刻度和逗号。