PDO和PDOStatement,神奇的任务

时间:2009-12-10 17:54:34

标签: php mysql pdo

我在飞行中制作了以下“测试级”: 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版本匹配)
  •   

1 个答案:

答案 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);
}