За последние 24 часа нас посетили 39750 программистов и 3282 робота. Сейчас ищут 1577 программистов ...

Не записываются данные в бд

Тема в разделе "PHP для новичков", создана пользователем MrSullex, 9 апр 2016.

Метки:
  1. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Есть класс добавления купон. Он работает, но! Если добавить еще один столбец для записи данные, то он перестает работать.
    Рабочий код
    Код (PHP):
    1. class promoModel extends Model {
    2.     public function createPromo($data) {
    3.         $sql = "INSERT INTO `promo` SET ";
    4.         $sql .= "cod = '" . $this->db->escape($data['cod']) . "', ";
    5.        // $sql .= "replace = '" . (int)$data['replace'] . "'";
    6.         $sql .= "skidka = '" . $this->db->escape($data['skidka']) . "' ";
    7.         $this->db->query($sql);
    8.         return $this->db->getLastId();
    9.     }
    Нерабочий код
    Код (PHP):
    1. class promoModel extends Model {
    2.     public function createPromo($data) {
    3.         $sql = "INSERT INTO `promo` SET ";
    4.         $sql .= "cod = '" . $this->db->escape($data['cod']) . "', ";
    5.         $sql .= "replace = '" . (int)$data['replace'] . "'";
    6.         $sql .= "skidka = '" . $this->db->escape($data['skidka']) . "' ";
    7.         $this->db->query($sql);
    8.         return $this->db->getLastId();
    9.     }
    Т.е. при добавлении строки
    Код (PHP):
    1. $sql .= "replace = '" . (int)$data['replace'] . "'";
    код перестает работать.
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Запятую пропустили. Подумайте сами, где
     
  3. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Добавил уже запятую. Не помогло.
    --- Добавлено ---
    Добавил уже запятую. Не помогло.
     
  4. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Тогда сделайте первый шаг, когда не работает сформированный программой SQL запрос: напечатайте его и подставьте вручную в mysql. Получите кучу мата, устраните причину, если сами не сможете - и запрос и мат в студию. И почему всем эту очевидную вещь объяснять приходится?

    О, кстати, replace - ключевое слово mysql, значит поле с таким именем надо заключать в ``
     
  5. Basilio

    Basilio Случайный прохожий

    С нами с:
    6 апр 2016
    Сообщения:
    191
    Симпатии:
    54
    А вот у меня возник вопрос концептуального характера - а что, проверять корректность отработки запросов и делать хотя бы минимальную обработку ошибок нынче не модно?