Проблема: Не получается отправить данные в бд из формы. Есть метод в контроллере который обрабатывает запрос
public function addAction() {
if (!empty($_POST)){
if (!$this->model->postValidate($_POST,'add')){
$this->view->message('Ошибка',$this->model->error);
}
$this->model->postAdd($_POST);
$this->view->message('Добавлено','ok');
}
$this->view->render('Добавить');
В свою очередь он вызывает модель с методом
public function postAdd($post) {
$params = [
'id' => '',
'name' => $post['name'],
'text' => $post['text'],
];
$this->db->query('INSERT INTO posts VALUES (:id, :name, :text)',$params);
}
Валидация формы проход но данные так и не попадают в бд. С подключением проблем нет. Чуйка подсказывает что не правильно состовляю запрос и видимо параметры не правильно передаются. Может подскажите что делается не так?
Выполните sql-запрос (внимание: удалит вашу существующую таблицу):
DROP TABLE IF EXISTS `posts`;
CREATE TABLE `posts` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`text` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Функция добавления:
public function postAdd($post) {
$STMT = $this->db->prepare("INSERT INTO posts (name, text) VALUES (:name, :text)");
$STMT->bindParam(':name', $post['name']); //, PDO::PARAM_STR - можно как третий параметр
$STMT->bindParam(':text', $post['text']);
$STMT->execute();
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей