微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用twig和php oop动态更新或删除

我正在学习PHP oop,我对此感到疯狂……

我想用我网站上的表格更新我的数据库.

我像这样创建我的模型:

public function update(Post $post){

$q = $this->_db->prepare('UPDATE posts SET title = :title, featuredImg = :featuredImg, content = :content, author = :author, date = :date, header = :header WHERE id = :id');

$q->bindValue(':title', $post->title(), PDO::ParaM_STR );
$q->bindValue(':content', $post->content(), PDO::ParaM_STR );
$q->bindValue(':author', $post->author(), PDO::ParaM_STR );
$q->bindValue(':header', $post->header(), PDO::ParaM_STR );
$q->bindValue(':date', $post->date(), PDO::ParaM_STR );
$q->bindValue(':featuredImg', $post->featuredImg(), PDO::ParaM_STR);
$q->bindValue(':id', $post->id(), PDO::ParaM_INT);

$q->execute();

和我的方法

public function updatePost(){
        $manager = new PostsManager($this->db);
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            $p = new Post([
                          'title' => $_POST['title'],
                          'header' => $_POST['header'],
                          'author' => $_POST['author'],
                          'date' => date("Y-m-d H:i:s"),
                          'content' => $_POST['content']
                          ]);
            $manager->update($p);
        }
    }

当我var_dump($p)
我的表格中有我的数据,但是当我用我的方法尝试时
$管理器 – &GT更新($p)的
它说null,所以我的数据库没有任何变化.

我没有使用Doctrine或其他DBAL层.

请问你能告诉我自己做得不好吗?我再说一遍,我正在学习.
非常感谢

编辑:

我的不好,当我的var_dump($p),我的id是null,它不好吗? :

$object(Post)[13]
    private '_id' => null    
    private '_title' => string 'Spicy jalapeno enim flank laborum prosciutto' (length=44)
    private '_content' => string 'Commodo shankle t-bone, pork loin occaecat ea andouille shoulder venison sausage chicken ... (length=1573)  
    private '_author' => string 'aaaaaaaaaaa' (length=11)
    private '_date' => null
    private '_header' => string 'Spicy jalapeno ...' (length=190)
    private '_featuredImg' => null_

解决方法:

只需在我的Post对象中添加ID,一切都恢复正常

  $post = new Post([
  'id' => $_POST['id'],
  'title' => $_POST['title'],
  'header' => $_POST['header'],
  'author' => $_POST['author'],
  'date' => date("Y-m-d H:i:s"),
  'content' => $_POST['content'],
  'featuredImg' => $image
]);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐