PDO 的 FETCH_INTO $这个类不起作用
我想使用 PDO 的 FETCH_INTO 构造函数填充类:
class user
{
private $db;
private $name;
function __construct($id)
{
$this->db = ...;
$q = $this->db->prepare("SELECT name FROM users WHERE id = ?");
$q->setFetchMode(PDO::FETCH_INTO, $this);
$q->execute(array($id));
echo $this->name;
}
}
这不起作用。没有错误,只是什么都没有。脚本没有错误,FETCH_ASSOC
工作正常。
FETCH_INTO
有什么问题?
I want to populate class with constructor using FETCH_INTO
of PDO:
class user
{
private $db;
private $name;
function __construct($id)
{
$this->db = ...;
$q = $this->db->prepare("SELECT name FROM users WHERE id = ?");
$q->setFetchMode(PDO::FETCH_INTO, $this);
$q->execute(array($id));
echo $this->name;
}
}
This does not work. No error, just nothing. Script has no errors, FETCH_ASSOC
works fine.
What is wrong with FETCH_INTO
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的代码中有两个错误:
1)你忘记了 $q->fetch()
2) 但即使添加 $q->fetch() 你也会得到这个:
因此,正如您所看到的,即使在类方法内部调用,PDO 也无法访问私有成员。
这是我的解决方案:
You have two errors in your code:
1) You forgot $q->fetch()
2) But even after adding $q->fetch() you'll get this:
So, as you can see, PDO cannot access private members even if it is called inside class method.
Here is my solution: