我无法将数组从PDO添加到构造函数PHP

我无法将数组从PDO添加到构造函数PHP,php,pdo,Php,Pdo,当我想将PDO中的数组添加到news类的构造函数时,我遇到了问题: class News{ protected $erreurs = array(), $id, $auteur, $titre, $contenu; public function __News(array $donnees){ $this->hydrate($donnees); } public

当我想将PDO中的数组添加到news类的构造函数时,我遇到了问题:

class News{

protected $erreurs = array(),
          $id,
          $auteur,
          $titre,
          $contenu;


 public function  __News(array $donnees){
         $this->hydrate($donnees);
     }

     public function hydrate(array $donnees)
     {
            foreach ($donnees as $key => $value)
        {
            $method = 'set'.ucfirst($key);
            if (method_exists($this, $method))
                   {
                       $this->$method($value);
                    }
        }
     }

具有按id获取新闻功能的类管理器:

public function getUnique($id){
            $id = (int)$id;
            $sql = $this->db->prepare('SELECT id, auteur, titre, contenu FROM news WHERE id = ?');
            $sql->bindParam('1', $id);
            $sql->execute();

            $mang = $sql->fetch(PDO::FETCH_ASSOC);
             return new News($mang);

        }
和索引。php

$db = new PDO('mysql:host=localhost;dbname=new', 'root','');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

    $manager = new Manager($db);



    $uniqueNews = $manager->getUnique(2);

    echo 'id : '.$uniqueNews->getAuteur();

但我不知道为什么导演的价值没有体现出来。如果我对这个承包商的看法完全错误,请给我指出正确的方向。谢谢。

您的构造函数应该被称为
\uu construct()


类的构造函数应该是
\uu construct()
或以类命名的方法。我喜欢第一种选择。第二个选项适用于遗留代码

class News{

    public function  __construct(array $donnees){
        // This is where your constructor code goes
    }
}

为什么要将
PDO::ATTR_ERRMODE
设置为
PDO::ERRMODE_WARNING
?将其设置为
PDO::ERRMODE_EXCEPTION
Ok。我将尝试使用选项PDO::ERRMODE_EXCEPTION。谢谢你,玛达拉
class News{

    public function  __construct(array $donnees){
        // This is where your constructor code goes
    }
}