Ошибка MySQL в PHP, но не через CLI - PullRequest
2 голосов
/ 07 декабря 2010

Обновление: я обнаружил проблему, я выводил оператор sql в файл, а не на экран и заметил дополнительный скрытый символ в конце оператора sql.Как только я убрал, что запрос работал нормально.Вырезание и вставка заявления из Интернета пропускало это.Спасибо за помощь.Исправлено.

Я получаю ошибку 1064 от mysql со следующим запросом:

    update `table` set `id` = "152614",
`Field2` = "151",
`Field3` = "11",
`Field4` = "1587",
`Field5` = "Elevator",
`Field6` = "",
`Field7` = "",
`Field8` = "",
`Field9` = "",
`Field10` = "",
`Field11` = "",
`Field12` = "0",
`Field13` = "0",
`Field14` = "0",
`Field15` = "0",
`Field16` = "0",
`Field17` = "0",
`Field18` = "0",
`Field19` = "0",
`Field20` = "0",
`Field21` = "0",
`Field22` = "0",
`Field23` = "0",
`Field24` = "0",
`Field25` = "0",
`Field26` = "0",
`Field27` = "0",
`Field28` = "0",
`Field29` = "0",
`Field30` = "0",
`Field31` = "0",
`Field32` = "0",
`Field33` = "0",
`Field34` = "0",
`Field35` = "0",
`Field36` = "1065353216",
`Field37` = "0",
`Field38` = "0",
`Field39` = "0",
`Field40` = "0",
`Field41` = "0",
`Field42` = "0",
`Field43` = "0" where id ="152614"

Ошибка MySQL 1064: у вас ошибка в синтаксисе SQL;проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать около '' в строке 43

Строка 43 - последняя строка.

Если я вставлю это в CLI mysql, этоработает отлично:

Запрос в порядке, затронуто 1 строка (0,00 с) Соответствующие строки: 1 Изменено: 1 Предупреждения: 0

На данный момент я в растерянности, есть идеи?Спасибо.

Версия MySQL: 5.1.52 Версия PHP: 5.3.3

Это довольно глубоко в моем сценарии, но часть, которая вызывает ошибку:

$result  = mysql_query( $sql );
if (mysql_errno()) { 
echo  "MySQL error ".mysql_errno().": ".mysql_error()."\n<br>When executing <br>\n$sql\n<br>";

Если я выведу $ sql, это будет идентично вставке для запроса выше (выше из строки ошибки).

1 Ответ

1 голос
/ 07 декабря 2010

Я обнаружил проблему, я выводил оператор sql в файл, а не на экран и заметил дополнительный скрытый символ в конце оператора sql. Как только я убрал, что запрос работал нормально. Вырезание и вставка заявления из Интернета пропускало это. Спасибо за помощь. Исправлено.

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