我无法将数组从PDO添加到构造函数PHP
当我想将PDO中的数组添加到news类的构造函数时,我遇到了问题:我无法将数组从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
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
}
}