ErickSkrauch
@ErickSkrauch

Почему стала появлятся такая ошибка

С утра всё было хорошо, а в обед ни с того ни с сего перестали выполнятся запросы вида:
INSERT IGNORE INTO `tags_list` (`word`) VALUES ('рыба');
INSERT IGNORE INTO `tags_list` (`word`) VALUES ('мясо');
INSERT IGNORE INTO `tags_list` (`word`) VALUES ('птица');

Выбивает ошибку "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT IGNORE INTO `tags_list` (`word`) VALUES ('рыба');IN'". Для работы с БД используется обёртка Krugozor Database Mysql, работающая на mysqli.

Готов на чём угодно поклясться, что код не менял и более того, если взять этот запрос и вставить в окошко phpMyAdmin - всё будет работать.
Характеристики сервера
  • Сервер: сборка OpenServer (Windows).
  • PHP: 5.4.13 (пробовал менять версии на 5.3\5.5)
  • MySQL: 5.1.70
  • Вопрос задан
  • 2802 просмотра
Решения вопроса 1
toxa82
@toxa82
Похоже что, сервер перестал видеть ";" как разделитель запросов. Может у вас где-то в коде используется DELIMITER и забыли вернуть обратно ";"?
Также можно переписать в один запрос:
INSERT IGNORE INTO `tags_list` (`word`) VALUES ('рыба'), ('мясо'), ('птица');
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
metamorph
@metamorph
В какой-то момент начал сжираться перевод строки, полагаю.
Krugozor вообще фиг знает что такое, используйте PDO, не выеживайтесь.
Ответ написан
svd71
@svd71
какой енжин для соединения с базой используете? если PDO, то внем разрешено только один запрос посылать.
Дробите тогда скрипт на отдельные запросы и каждый запрос по отдельности посылайте. Или исползуйте mysql_queryю Там разрешено скрипт с несколькими запросами посылать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы