Есть класс добавления купон. Он работает, но! Если добавить еще один столбец для записи данные, то он перестает работать. Рабочий код Код (PHP): class promoModel extends Model { public function createPromo($data) { $sql = "INSERT INTO `promo` SET "; $sql .= "cod = '" . $this->db->escape($data['cod']) . "', "; // $sql .= "replace = '" . (int)$data['replace'] . "'"; $sql .= "skidka = '" . $this->db->escape($data['skidka']) . "' "; $this->db->query($sql); return $this->db->getLastId(); } Нерабочий код Код (PHP): class promoModel extends Model { public function createPromo($data) { $sql = "INSERT INTO `promo` SET "; $sql .= "cod = '" . $this->db->escape($data['cod']) . "', "; $sql .= "replace = '" . (int)$data['replace'] . "'"; $sql .= "skidka = '" . $this->db->escape($data['skidka']) . "' "; $this->db->query($sql); return $this->db->getLastId(); } Т.е. при добавлении строки Код (PHP): $sql .= "replace = '" . (int)$data['replace'] . "'"; код перестает работать.
Тогда сделайте первый шаг, когда не работает сформированный программой SQL запрос: напечатайте его и подставьте вручную в mysql. Получите кучу мата, устраните причину, если сами не сможете - и запрос и мат в студию. И почему всем эту очевидную вещь объяснять приходится? О, кстати, replace - ключевое слово mysql, значит поле с таким именем надо заключать в ``
А вот у меня возник вопрос концептуального характера - а что, проверять корректность отработки запросов и делать хотя бы минимальную обработку ошибок нынче не модно?