php 插入准备好的 stmt
php insert prepared 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 语句是为了证明数据库连接是否处于活动状态。它在我使用
时有效
print_r($user)
第二个是没有执行的语句
我有一个控制器在模型上调用此函数,并将表单中的所有信息提供给此函数,例如
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);
}
并且实际调用了此模型上的函数。我可以 select 来自数据库的所有用户。
我已经检查了所有参数,而且每个参数都可以为空,所以,即使表单是空的,它也应该是数据库中的插入(这只是为了测试)。
但是数据库中没有条目...
所以我的问题是:我在这里做错了什么?
MySQL 似乎不喜欢您的日期值。根据文档,MySQL 中日期作为字符串的默认格式是 YYYY-MM-DD HH:MM:SS
;看起来像这样的字符串将被自动解析为日期。
使用 (?,?,?,?,?,?)
而不是 (: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()
格式
的字符串
我的代码如下:
$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 语句是为了证明数据库连接是否处于活动状态。它在我使用
时有效print_r($user)
第二个是没有执行的语句
我有一个控制器在模型上调用此函数,并将表单中的所有信息提供给此函数,例如
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);
}
并且实际调用了此模型上的函数。我可以 select 来自数据库的所有用户。
我已经检查了所有参数,而且每个参数都可以为空,所以,即使表单是空的,它也应该是数据库中的插入(这只是为了测试)。
但是数据库中没有条目...
所以我的问题是:我在这里做错了什么?
MySQL 似乎不喜欢您的日期值。根据文档,MySQL 中日期作为字符串的默认格式是 YYYY-MM-DD HH:MM:SS
;看起来像这样的字符串将被自动解析为日期。
使用 (?,?,?,?,?,?)
而不是 (: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()
格式