2014-10-28 4 views
-1

Я пытаюсь создать блог с использованием php в архитектуре MVC.
Моя база выглядит следующим образом:php form не записывается в базу данных с использованием MVC

TABLE `blog_posts` (
    `post_id` INT(11) unsigned NOT NULL AUTO_INCREMENT, 
    `user_name` VARCHAR(64), 
    `post_title` VARCHAR(255) DEFAULT NULL, 
    `post_desc` TEXT, 
    `post_cont` TEXT, 
    `post_date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
PRIMARY KEY (`post_id`), 
FOREIGN KEY (`user_name`) REFERENCES users (`user_name`) ON DELETE RESTRICT ON UPDATE CASCADE 

Теперь я пытаюсь создать BlogPost, и я просто не могу понять, почему он не работает.
Я просто получаю свои значения по умолчанию в своей базе данных не один раз, когда я пишу в форму.

Вот мой код:

Контроллер

/** 
* Creates a new blogpost. This is the target of form submit action. 
*/ 
public function create() 
{ 
    if (!empty($_POST['post_title']) AND !empty($_POST['post_desc']) AND !empty($_POST['post_cont']) AND isset($_POST['post_cont'])) { 
     $note_model = $this->loadModel('Blog'); 
     $note_model->create($_POST['post_title'] AND $_POST['post_desc'] AND $_POST['post_cont']); 
    } 
    header('location: ' . URL . 'blog'); 
} 

Модель

/** 
    * Setter for a blogpost (create) 
    * @param string $post_cont blogpost text that will be created 
    * @return bool feedback (was the post created properly ?) 
    */ 
    public function create($post_title, $post_desc, $post_cont) 
    { 
     $sql = "INSERT INTO blog_posts (post_title, post_desc, post_cont, user_name) VALUES (:post_title, :post_desc, :post_cont, :user_name)"; 
     $query = $this->db->prepare($sql); 
     $query->execute(array(':post_title' => $post_title, ':post_desc' => $post_desc, ':post_cont' => $post_cont, ':user_name' => $_SESSION['user_name'])); 

     $count = $query->rowCount(); 
     if ($count == 1) { 
      $_SESSION["feedback_positive"][] = FEEDBACK_BLOGPOST_CREATION_SUCCESSFUL; 
      return true; 
     } else { 
      $_SESSION["feedback_negative"][] = FEEDBACK_BLOGPOST_CREATION_FAILED; 
     } 
     // default return 
     return false; 
    } 

Просмотр

<form method="post" action="<?php echo URL;?>blog/create"> 
     <label>Title: </label><input type="text" name="post_title" /> 
     <label>Description: </label><input type="text" name="post_desc" /> 
     <label>Blogpost: </label><textarea name="post_cont"></textarea> 
     <input type="submit" value='create blogpost' autocomplete="off" /> 
    </form> 

Любая помощь была бы очень признательна! Спасибо!!

+1

Аргументы функции передается с помощью запятой, а не 'AND' –

+0

Проверьте журнал ошибок. –

+0

спасибо !! Это решило это !!! – Schwesi

ответ

0

@u_mulder имеют право.

Вы должны использовать этот вызов, как это:

$note_model->create($_POST['post_title'], $_POST['post_desc'], $_POST['post_cont']); 
+0

спасибо !! Это решило это !!! – Schwesi

Смежные вопросы