我正在尝试使用PDO来填充User对象。
我稍微简化了我的代码,(SQL等),但基本上我有这个:
Class User
{
protected $id;
protected $email;
protected $password;
public function tokenCheck()
{
$sql = 'SELECT * FROM blah LIMIT 1';
$STH = $this->DBH->prepare($sql);
$STH->setFetchMode(PDO::FETCH_INTO, $this);
$STH->execute();
$result = $STH->fetch();
}
}
我打电话给:
$User->tokenCheck();
当我转储我的用户对象时,我得到:
object(User)#1 (7) { ["id":protected]=> NULL [ ["email"]=> NULL ["password":protected]=> NULL ["token":protected]=> NULL }
我已尝试将所有属性设置为公开,结果相同。所有值都保持为NULL。
This所以答案对我来说也不起作用。
答案 0 :(得分:0)
你试过吗
$STH->fetchAll(PDO::FETCH_CLASS, "User");
它将实例化一个用您的数据填充的User类。
答案 1 :(得分:0)
问题是你试图在你的User类中选择id,email和密码但是它们受到保护,你甚至可以保留这些属性,因为列名将定义属性名称。
Class User
{
PUBLIC $id;
PUBLIC $email;
PUBLIC $password;
public function tokenCheck()
{
$sql = 'SELECT * FROM blah LIMIT 1';
$STH = $this->DBH->prepare($sql);
$STH->setFetchMode(PDO::FETCH_INTO, $this);
$STH->execute();
$STH->fetch();
}
}