Синтаксис загрузки данных MySql?

У меня есть текстовый файл «result.txt», в котором используются «|» для выделения полей. Я использовал PhpMyAdmin и успешно импортировал его в свою таблицу, указав «CSV LOAD DATA» и указав, что поля должны быть разделены «|».

PhpMyAdmin также дал полный запрос для этого, поэтому я скопировал его и вставил в свой php-скрипт, который выглядел так:

mysql_query("LOAD DATA LOCAL INFILE 'C:/wamp/www/TouchStone/result.txt' INTO TABLE customer_change FIELDS TERMINATED BY '|' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' ") or die(mysql_error()); 

Я всегда получаю ошибку:

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' 'в строке 2

Мне было интересно, поскольку я скопировал точно такой же запрос, созданный phpmyadmin, я думаю, что он определенно будет работать здесь. Но почему эта ошибка произойдет?

Я попробовал обрезку запроса, чтобы он содержал только «FIELDS TERMINATED BY», и он сработал. Но база данных, заполненная таким образом, будет содержать неправильные данные. Поэтому я действительно хочу узнать, почему исходный более длинный запрос не сработает?

Благодарю.

Related of "Синтаксис загрузки данных MySql?"

Вы используете строку с двойными кавычками, поэтому \r\n будет рассматриваться как литеральные символы возврата каретки и строки. Вам также необходимо удвоить их: \\r\\n .

«В строке 2» в сообщении об ошибке свидетельствует об этом – во втором вопросе нет другой второй строки, но из-за встроенного возврата новой строки / каретки, как только она попадает в MySQL.

Попробуй это :

 mysql_query("LOAD DATA LOCAL INFILE 'C:/wamp/www/TouchStone/result.txt' INTO TABLE customer_change FIELDS TERMINATED BY '|' ESCAPED BY '//' LINES TERMINATED BY '/r/n' ") or die(mysql_error());