Я пытаюсь импортировать большой CSV-файл, содержащий 100 000 строк, в таблицу MySql. Я получаю сообщение об ошибке:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, на предмет правильного синтаксиса для использования рядом с «Dell», «», «1610 Keeneland Dr», «», «Helena», «205-871-8006», «», «35080». -4114')' в строке 1
изменение кода с запроса на эхо:
'428A1B35-6913-497C-907A-BFB9C4983B04', 'Эндрю Коллинз О'Делл', '', '1610 Keeneland Dr', '', 'Хелена', '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, что, конечно, из-за дополнительных галочек и запятых.