PHP / MYSQL - синтаксическая ошибка, связанная с запросом mysql через переменную php - PullRequest
0 голосов
/ 10 ноября 2011

У меня проблема с синтаксическими ошибками в следующей переменной:

$uploadQuery = "
LOAD DATA LOCAL INFILE '".$docRoot."/../../includes/dbUploads/".$fileToUpload."' 
INTO TABLE `promotions` 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\r\n'  
";

Я знаю, что это как-то связано с экранированием символов ' в строке LOAD DATA ...,Но я озадачен, когда речь идет о том, в чем именно заключается проблема, или о том, как правильно сформулировать этот запрос.

Итак, мой вопрос таков:

Как мне перефразировать изложенноепеременная в правильном порядке, чтобы не иметь никаких синтаксических ошибок, связанных с ней.

Если у кого-либо есть какие-либо предложения или предложения по этому поводу, это будет с благодарностью.

Спасибо!

1 Ответ

3 голосов
/ 10 ноября 2011

Отсутствует escape-символ, это правильная строка:

$uploadQuery = "
LOAD DATA LOCAL INFILE '".$docRoot."/../../includes/dbUploads/".$fileToUpload."' 
INTO TABLE `promotions` 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '\"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\\r\\n'  
";

Обратите внимание на дополнительные \ на 5-й строке.Он рассматривал " как терминатор строки.Еще одна проблема (которая не вызывает синтаксической ошибки) находится на 7-й строке, вам необходимо избежать обратной косой черты.

PS Анализатор разметки даже поднял ее: P

Редактировать:вам, вероятно, также нужно изменить строку 7 на ESCAPED BY '\\\\', поскольку после синтаксического анализа PHP она уменьшается до ESCAPED BY '\\'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...