我在飞行中制作了以下“测试级”: http://sumoin.pastebin.com/ff744ea4 没有微调或其他东西,只是一个简短的测试pdo类。
我有test.php: http://sumoin.pastebin.com/d70dcb4ec
有趣的是:
永远不会直接返回PDOStatement对象,我永远不会将其分配给$this->handler->stmt
但执行$stmt->execute()
的工作正常,好像一切都好。
但如果我使用$this->handler->stmt->someMethod
,我会收到以下错误:
致命错误:调用成员函数 bindParam()在非对象
上
(bindParam只是一个例子)
我已经检查了查询,它没有错误,我试图使用“bindValue()”,没有用。
我尝试使用整数而不是':name'来为参数赋值。
我通过$this->handler->query()
运行纯查询,但它确实有效。
问题出在哪里? 当调用“ - > prepare()”方法时,我不希望在运行时分配我的PDOStatement对象,我希望它成为类的一部分。
有什么想法吗? 如果那里有重复,请不要打我,但我找不到任何帮助我的东西。
信息:
- PHP5.2
- 已安装PDO扩展等
- 的Apache2
- MySQL5.1(与PDO版本匹配)
答案 0 :(得分:0)
解决方法/解决方案:
public function prepare($query)
{
return $this->handler->prepare($query);
//$stmt->setFetchMode(PDO::FETCH_ASSOC); // standard
//return $this->stmt;
}
public function getStatement($query)
{
$this->stmt = $this->prepare($query);
}