Помогите исправить ошибку

Статус
В этой теме нельзя размещать новые ответы.

mmmppp

Постоялец
Заблокирован
Регистрация
10 Ноя 2011
Сообщения
65
Реакции
13
  • Автор темы
  • Заблокирован
  • #1
На сайте при удалении категорий вылазит ошибка:
MySQL Query:UPDATE [pre]auto SET status=0 WHERE catid IN (6)
MySQL Error:Table 'cms.[pre]auto' doesn't exist MySQL Errno:0
Message:MySQL Query Error

Подскажите пожалуйста, куда копать, чтобы исправить?
 
Запрос содержит некорректное имя таблицы [pre]auto
Смотреть в скрипте как формируется этот SQL возможно там ошибка.
Задать в конфигах префикс таблиц в БД, если его нет то задать как пустую строку.
 
  • Автор темы
  • Заблокирован
  • #3
Запрос содержит некорректное имя таблицы [pre]auto
Смотреть в скрипте как формируется этот SQL возможно там ошибка.
Задать в конфигах префикс таблиц в БД, если его нет то задать как пустую строку.
Нет, с префиксом всё нормально, [pre] это так выводится показ префикса без вывода действительного названия...
Дело ещё в том, что на сайте есть аналогичный модуль, только с другим названием-там всё работает нормально, а в этом показывает ошибку, хотя сама категория удаляется.
 
  • Автор темы
  • Заблокирован
  • #5
а так работает?
Код:
UPDATE `[pre]auto` SET status=0 WHERE catid IN (6)
Ну если я не ошибаюсь, то эта строка в ошибке-это показано действие-при котором и происходит ошибка, в данном случае это удаление категории с ID 6
 
Ну если я не ошибаюсь, то эта строка в ошибке-это показано действие-при котором и происходит ошибка, в данном случае это удаление категории с ID 6
на самом деле
Код:
MySQL Error:Table 'cms.[pre]auto' doesn't exist MySQL Errno:0
у вас в названии таблички спецсимвол, поэтому советовал обвернуть название в `
 
  • Автор темы
  • Заблокирован
  • #7
на самом деле
Код:
MySQL Error:Table 'cms.[pre]auto' doesn't exist MySQL Errno:0
у вас в названии таблички спецсимвол, поэтому советовал обвернуть название в `
В таблице именно так, как вы советуете.
 
В таблице именно так, как вы советуете.
покажите сам код запроса непосредственно перед выполнением, а то у вас
Код:
UPDATE [pre]auto SET status=0 WHERE catid IN (6)
а в идеале нужно
Код:
UPDATE `[pre]auto` SET `status` = 0 WHERE `catid` IN (6)
 
  • Автор темы
  • Заблокирован
  • #9
покажите сам код запроса непосредственно перед выполнением, а то у вас
Код:
UPDATE [pre]auto SET status=0 WHERE catid IN (6)
а в идеале нужно
Код:
UPDATE `[pre]auto` SET `status` = 0 WHERE `catid` IN (6)
PHP:
function delete($catids) {
        if(is_array($catids)) {
            foreach($catids as $catid) {
                if(isset($this->category[$catid])) $this->delete($catid);
            }
        } else {
            $catid = $catids;
            if(isset($this->category[$catid])) {
                $this->db->query("DELETE FROM {$this->table} WHERE catid=$catid");
                $arrchildid = $this->category[$catid]['arrchildid'] ? $this->category[$catid]['arrchildid'] : $catid;
                $this->db->query("DELETE FROM {$this->table} WHERE catid IN ($arrchildid)");           
                if($this->moduleid > 4) $this->db->query("UPDATE ".get_table($this->moduleid)." SET status=0 WHERE catid IN (".$arrchildid.")");
            }
        }
        return true;
    }
 
попробуйте так
PHP:
$this->db->query("DELETE FROM `{$this->table}` WHERE catid=$catid");
                $arrchildid = $this->category[$catid]['arrchildid'] ? $this->category[$catid]['arrchildid'] : $catid;
                $this->db->query("DELETE FROM `{$this->table}` WHERE catid IN ($arrchildid)");        
                if($this->moduleid > 4) $this->db->query("UPDATE `".get_table($this->moduleid)."` SET status=0 WHERE catid IN (".$arrchildid.")");
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху