2015-12-04 2 views
1

Мой код выглядит следующим образом:PHP вставить подготовленный STMT

$sql_ = $this->db->prepare("SELECT * FROM user"); 
     $sql_->execute(); 
     $user = $sql_->fetchAll(); 

     $sql_insert_blog = $this->db->prepare("INSERT INTO 
               blog 
               (blog_title,blog_author,blog_content,blog_tags,blog_create,blog_update) 
               VALUES 
               (:1,:2,:3,:4,:5,:6)"); 
     $sql_insert_blog->execute(array(
             ":1"=>$title, 
             ":2"=>$author, 
             ":3"=>$content, 
             ":4"=>$tags, 
             ":5"=>$date_create, 
             ":6"=>$date_update 
             )); 

Таким образом, первое утверждение SQL является доказательством, если coneccion база данных активна. Он работает, когда я использую

print_r($user) 

Th second one - это инструкция, которая не была выполнена.

У меня есть контроллер, который вызывает эту функцию на модели, и дает всю информацию от формы к этой функции, как

function newBlogEntry() 


{ 

$title = $_POST["input_blog_title"]; 
$author = $_POST["input_blog_author"]; 
$content = $_POST["input_blog_content"]; 
$tags = $_POST["input_blog_tags"]; 
$date_create = date('m/d/Y h:i:s a', time()); 
$date_update = $date_create; 

$this->model->newBlogEntry($title,$author,$content,$tags,$date_create,$date_update); 


} 

и функция на этой модели на самом деле называется. я могу выбрать всех пользователей из db.

i allready проверил все параметры, а также каждый параметр может быть нулевым, поэтому, даже если форма emtpy должна быть вставкой в ​​базу данных (это только для тестирования).

Но нет записи в базе данных ...

Так что мой вопрос: что я делаю неправильно здесь?

+0

ли производить это какие-либо сообщения об ошибках? Проверьте файл 'error.log' вашего сервера. –

+0

@ Darwin Ошибка анализа: ошибка синтаксического анализа, ожидающая '' идентификатор (T_STRING) "или" "пространство имен (T_NAMESPACE)" или "" \\ (T_NS_SEPARATOR) "'в – LukasA

+0

Извините, забыл положить исключение в catch stmt .. Я не получаю исключения .. – LukasA

ответ

2

Похоже, что MySQL не нравится ваши значения даты. Формат по умолчанию для дат-строк в MySQL равен YYYY-MM-DD HH:MM:SS, согласно документам; строка, которая выглядит так, будет автоматически проанализирована как дата.

0

использование (?,?,?,?,?,?) вместо (:1,:2,:3,:4,:5,:6) и

 
$sql_insert_blog->execute(array($title, $author, $content, $tags, $date_create, $date_update)); 

и даты должны быть строками с Y-m-d H:i:s PHP date() формате

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