Перейти к содержанию

Рекомендуемые сообщения

Запрос не добавляет запись в бд.

Вот запрос:

public function filterCategory() {
	$query =$this->db->query("INSERT INTO " . DB_PREFIX . "category_filter SET category = '1', filter_id = '5'");

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В данной таблице нет поля - category

Вместо него надо поставить category_id и всё сработает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
public function filterCategory() {
	$query =$this->db->query("INSERT INTO " . DB_PREFIX . "category_filter SET category_id = '1', filter_id = '5'");
	}

К сожалению тоже не срабатывает и в бд информацию не добавляет 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Запрос не посредственно из mysql

INSERT INTO `oc_category_filter`(`category_id`, `filter_id`) VALUES (1,5);

срабатывает замечательно.

 

А вот из php не срабатывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так не бывает. Может не в той базе смотрите результат.

И смотрите лог ошибок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как посмотреть лог ошибок?

 

С базой ошибиться не могу с таблицей тоже.

 

Этот запрос пытаюсь встроить в файл обмена с 1с. Может последовательность влияет роль, хотя запрос идет самым последним в файле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задам глупый вопрос 

А саму функцию Вы случайно не забыли вызвать в контролере ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде бы подключено

//Добавляем фильтр в категорию
		$this->model_tool_exchange1c->filterCategory();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а в самом контролере он и индексе  ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понятно про индекс?

 

Вот это подключение выполнено в \www\admin\controller\module\exchange1c.php больше контроллера вроде нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда все должно быть тут

function index {

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты


<?php

class ControllerModuleExchange1c extends Controller {

private $error = array();

public function index() {

...

...

...

//Добавляем фильтр в категорию

$this->model_tool_exchange1c->filterCategory();

}

...

...

...}

?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как правильно подключить данный запрос к модулю OpenCart Exchange 1C?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а кто его знает, это гадания на хрустальном шаре 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Запрос не посредственно из mysql

И вы не замечаете в чём кардинальная разница между этими запросами?

Подсказка: SET - это часть UPDATE запроса.

 

И, похоже, кроме Otvet никто этого так и не заметил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не начинайте детский сад.

Первый попавшийся запрос движка:

$this->db->query("INSERT INTO " . DB_PREFIX . "product_option SET product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', option_value = '" . $this->db->escape($product_option['option_value']) . "', required = '" . (int)$product_option['required'] . "'");

Или хотя бы попробовали выполнить такой запрос в mysql.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вы не замечаете в чём кардинальная разница между этими запросами?

Подсказка: SET - это часть UPDATE запроса.

 

И, похоже, кроме Otvet никто этого так и не заметил.

прошу мануал 

 

http://dev.mysql.com/doc/refman/5.7/en/insert.html

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)]
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и еще вот такой синтаксис есть 

INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)]
    [(col_name,...)]
    SELECT ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

прошу мануал 

 

http://dev.mysql.com/doc/refman/5.7/en/insert.html

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
    [INTO] tbl_name
    [PARTITION (partition_name,...)]
    SET col_name={expr | DEFAULT}, ...
    [ ON DUPLICATE KEY UPDATE
      col_name=expr
        [, col_name=expr] ... ]

А действительно.

Как говорит Гугл, это не часть SQL, а синтаксис конкретно MySQL.

 

Первый попавшийся запрос движка

По идее, это значит, что ОК несовместим, например, с PostgreSQL.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А действительно.

Как говорит Гугл, это не часть SQL, а синтаксис конкретно MySQL.

 

 

 

По идее, это значит, что ОК несовместим, например, с PostgreSQL.

драйвер есть, по поводу совместимость не скажу, не тестировал, но вроде в документации нет SET

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

public function filterCategory() {
    $query =$this->db->query("INSERT INTO " . DB_PREFIX . "category_filter SET category = '1', filter_id = '5'");
category_filter как я думаю это таблица
На выходе рабочий код

public function filterCategory() {

    $query =$this->db->query("INSERT INTO " . DB_PREFIX . "`category_filter`(`category`, `filter_id`) VALUES ('1', '5')");

Изменено пользователем interpol
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати рекомендую еще раз прочитать документацию а точнее синтаксис insert

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть подозрение, что там дело даже не в запросе.

Возможно просто не доходит дело до выполнения этого кода.

 

Вставьте перед вызовом функции:

$this->log->write('DEBUG: test');

И посмотрите, появляется ли этот текст в логе.

Если нет, то копайте почему не вызывается функция контроллера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×