Синтаксическая ошибка кода запроса MySQL в OpenCart - PullRequest
0 голосов
/ 30 января 2019

Я не знаю, почему у меня ошибка:

Неустранимая ошибка: Uncaught Исключение: Ошибка: в синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с '* FROM mydatabase_customer SET status =' 0 'WHERE customer_id = '11' 'в строке 1Ошибка № 1064INSERT INTO * FROM mydatabase_customer SET status = '0' WHERE customer_id = '11 'в /home/nedas/domains/mypage.com/public_html/opencart/system/library/db/mysqli.php:40 трассировки стека: # 0 /home / nedas / domains / mypage.com / public_html / opencart / system / library / db.php (45): запрос DB \ MySQLi-> ('INSERT INTO * F ...') # 1 / home / nedas / domains/mypage.com/public_html/opencart/catalog/controller/account/success.php(29): запрос DB-> ('INSERT INTO * F ...') # 2 /home/nedas/domains/mypage.com/public_html / opencart / system / engine / action.php (79): ControllerAccountSuccess-> index () # 3 /home/nedas/domains/mypage.com/public_html/opencart/catalog/controller/startup/router.php(25): Action-> execute (Object (Registry)) # 4 /home/nedas/domains/mypage.com/public_html/opencart/system/eng in /home/nedas/domains/mypage.com/public_html/opencart/system/library/db/mysqli.php в строке 40

Мой код:

        if ($this->customer->isLogged()) {
        $status = '0';
        $id = $this->customer->getId();
        $this->db->query("INSERT INTO * FROM perkulenkijoje_customer SET status='$status' WHERE customer_id='$id'");
        echo ("Info: Insert done");
    } else {
        echo ("Info: Please log in");
    }

Пожалуйста, помогите мне.

Как успешно вставить в базу данных с помощью платформы opencart?

Ответы [ 3 ]

0 голосов
/ 30 января 2019

если вы хотите изменить значение, вы должны использовать update

     UPDATE perkulenkijoje_customer
     SET status='$status' WHERE customer_id='$id'

, в любом случае вам не следует использовать php var в sql, вы рискуете получить sqlinjection .. для этого взгляните на подготовленный оператор и обязательный параметрдля тебя дб драйвер

0 голосов
/ 30 января 2019

, чтобы сохранить структуру базы данных opencart (я имею в виду префикс), вам нужно использовать запрос, подобный этому

$this->db->query("UPDATE " . DB_PREFIX . "perkulenkijoje_customer SET status = '" . (int)$status . "' WHERE customer_id = '" . (int)$id . "'");

И лучше, если этот запрос вы перенесете в файл модели и вызовете его в контроллере.

0 голосов
/ 30 января 2019

Похоже, что вы хотите UPDATE данные не делают INSERT, это должно быть так:

$this->db->query("UPDATE perkulenkijoje_customer SET status='$status' WHERE customer_id='$id'");

...