• Объявления

    • dinox

      Закрытый раздел разработчиков   21.08.2017

      У нас на форуме существует закрытый раздел для разработчиков в котором мы обсуждаем нюансы работы на нашем форуме, в каталоге дополнений и другие моменты которые интересны в большинстве случаев только разработчикам. На данный момент существует лишь 2 условия для попадания:
      1. Наличие промодерированного дополнения в нашем каталоге  2. Отсуствие варезной деятельности 
      Если эти правила выполнены, пишите запрос @ArtemPitov на попадание в раздел разработчиков

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

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

Вот запрос:

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

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


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

mpn2005    332

В данной таблице нет поля - 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 не срабатывает.

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


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

mpn2005    332

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

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

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


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

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

 

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

 

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

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


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

ArtemPitov    341

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

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

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


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

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

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

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


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

ArtemPitov    341

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

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


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

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

 

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

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


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

ArtemPitov    341

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

function index {

}

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


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


<?php

class ControllerModuleExchange1c extends Controller {

private $error = array();

public function index() {

...

...

...

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

$this->model_tool_exchange1c->filterCategory();

}

...

...

...}

?>

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


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

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

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


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

ArtemPitov    341

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

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


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

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

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

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

 

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

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


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

mpn2005    332

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

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

$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.

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


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

ArtemPitov    341

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

Подсказка: 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] ... ]

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


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

ArtemPitov    341

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

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] ... ]

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


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

Dotrox    316

 

прошу мануал 

 

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.

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


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

ArtemPitov    341

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

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

 

 

 

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

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

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


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

interpol    0

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

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


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

interpol    0

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

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


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

mpn2005    332

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

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

 

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

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти


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

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