Добавление данных в бд через форму php

238
09 августа 2018, 14:00

Проблема: Не получается отправить данные в бд из формы. Есть метод в контроллере который обрабатывает запрос

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); 
}

Валидация формы проход но данные так и не попадают в бд. С подключением проблем нет. Чуйка подсказывает что не правильно состовляю запрос и видимо параметры не правильно передаются. Может подскажите что делается не так?

Answer 1

Выполните 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();
}
READ ALSO
Возможен ли перевод даты типа 930 или 1030 в unix формат в php?

Возможен ли перевод даты типа 930 или 1030 в unix формат в php?

Я новичок в phpСейчас делаю один скрипт, работающий с временем

198
Почему данные не доходят?

Почему данные не доходят?

Всем приветЕсть метод который отвечает за регистрацию:

225