@Genri_Rus

Почему SET не работает и выдает 500 ошибку на хостинге?

Есть mysql запрос с оператором SET
public function update($cart_id, $quantity, $option = array()) {
	$this->db->query("UPDATE " . DB_PREFIX . "cart SET quantity = '" . (int)$quantity . "', option = '" . $this->db->escape(json_encode($option)) . "' WHERE cart_id = '" . (int)$cart_id . "' AND api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");
}


Данный запрос работает на локальном сервере XAMPP, а на хостинге бегет не работает
Почему на хостинге бегет этот код может выдавать 500 ошибку ?

P.S. Ошибка 500 возникает из-за этого:
"option = '" . $this->db->escape(json_encode($option)) . "'"


60413ed2a8d8b186986906.png
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@Genri_Rus Автор вопроса
Проблему решил, видимо переменная option у хостинга Бегет является зарезервированным ключевым словом и нужно обязательно экранировать `option`, нужно вот так:
"`option` = '" . $this->db->escape(json_encode($option)) . "'"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы