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

时间:2013-05-10 21:22:10

标签: php pdo

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

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();

但我不知道为什么没有显示auteur的价值。如果我对这个构造完全错误,请指出我正确的方向。感谢。

2 个答案:

答案 0 :(得分:1)

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

class News{

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

答案 1 :(得分:0)

您的构造函数应该调用__construct()

class News{

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


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