Icms2 - You have an error in your SQL syntax

#1 15 сентября 2015 в 17:42
При создании компонента вдруг, откуда не возьмись стала выходить такая ошибка

You have an error in your SQL syntax ........

Ошибка выходила при запросе при попытке удалить запись в которой поле order = n
Избавиться от ошибки смог только переименовав поле order

Почему такая реакция на название "order"?
#3 15 сентября 2015 в 18:06
Как вариант заключайте названия полей в апострофы (там же где буква ё) и ничего переименовывать не придется. Но все таки лучше избегать таких названий
#4 15 сентября 2015 в 18:18

Как вариант заключайте названия полей в апострофы

Pasha
  1. $this->filterEqual('order',1);
Как в таком случае?
#5 15 сентября 2015 в 18:43
Да как бы
  1. $this->filterEqual('`order`',1);
Наверное, я не проверял....

Только лучше этого не делать поскольку объекты должны заворачиваться в апострофы на уровне cmsDatabase и если вдруг это произойдет в каком либо обновлении, то капут. А вот если вы пишете запросы по старинке, то есть вместо $this->filterEqual('order',1); пишете WHERE order = 1. то никаких проблем.
#6 15 сентября 2015 в 18:53

Почему такая реакция на название "order"?

kreator
Выше ответили, что у mysql эти слова для выполнения команд зарезервированы и любое упоминание будет ошибка, добавьте любой символ в слово или сократите его до меньшего числа букв и все ок будет.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.