Проблема с компонентом каталог фирм

InstantCMS 1.X

Проблема с добавлением записей в компоненте каталог фирм

#1 23 февраля 2018 в 16:11
Доброго времени суток. Я уже писал о своей проблеме с добавлением новых записей в компоненте каталог фирм. Результаты поисков ничего не дали, но до истинны я все же докопался. Нашел проблему по которой я допускаю почему и не работает компонент. Вот сообщение ошибки

DATABASE ERROR: SELECT parent_id as getfield FROM cms_firmy_cat WHERE id= LIMIT 1 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'LIMIT 1' at line 1


Перечитал много информации но так и не понял как мне решить данную ошибку. Из всего что я понял это мне нужно изменить значение для столбца "parent_id", но когда я делаю присвоение ключевого столбца мне говорит что уже есть ключевой столбец "id"

Пожалуйста очень прошу, подскажите как решить проблему.
#2 23 февраля 2018 в 17:01
@Deduwka, смотрите внимательно, у вас запрос
  1. WHERE id=
т.е. пытается найти строчку с пустым id.
Поскольку все id в таблицах начинаются с единицы, и все целые, результат очевиден.

если уж и формируете запрос, который не должен что то возращать, делайте так:
  1. WHERE id=0
#3 24 февраля 2018 в 10:13


@Deduwka, смотрите внимательно, у вас запрос

  1. WHERE id=
т.е. пытается найти строчку с пустым id.
Поскольку все id в таблицах начинаются с единицы, и все целые, результат очевиден.

если уж и формируете запрос, который не должен что то возращать, делайте так:
  1. WHERE id=0

Странник

Я немного не понял. Как значение "id" относится к "parent_id". Вы верно говорите что значения начинаются с целых чисел и не с нуля. Но у меня ошибку выдает непосредственно к "parent_id", а в нем значение стоит "0" для всех последовательных "id". Сегодня досмотрел что ошибка выписывает мне синтаксис не допустим для базы данных Debian, а именно значение "Where id= LIMIT 1".
Пробовал изменить это значение на 0 выдает ошибки 1074 — 1075. Почитал форумы, пишут что это связано с количеством запросов к данной таблице и оно должно быть больше 10 000, но тогда будет очень сильно загружаться база и увеличится время ожидания.
Я не особо силен в базах данных, и не могу сам довести до ума эти ошибки. Раньше на сервере стоял другой движок базы данных, после его изменили на Debian MariaDb и с этого момента перестали функционировать некоторые функции сайта.
Если не сложно объясните более подробно как можно изменить значение "WHERE id="
#4 24 февраля 2018 в 15:46
К сожалению, вынужден вас огорчить. Строчка WHERE id= относится к пустому значению id. Если бы она относилась к parent_id, там бы было WHERE parent_id =
Далее. После пробела, который в sql-запросах отделяет выражения друг от друга, стоит служебное слово LIMIT со значением 1, которое означает, что вернуть надо только одну строчку.
Это автоматически делает выражение WHERE id= запрашивающем пустое значение id.

Рекомендую ознакомиться.

Если вы не сильны в sql-запросах, рекомендую пригласить специалиста. Скорее всего, у вас ошибка в коде php, который генерирует такой кривой запрос.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.