【发布时间】:2016-01-16 14:08:18
【问题描述】:
扩展 php pdo 以支持 impala,但 setAttribute() 函数失败。 我的代码是:
class ImpalaPDO extends PDO {
public function __construct($dsn, $username, $passwd, $options)
{
parent::__construct($dsn, $username, $passwd, $options);
$impala = new ImpalaPDOStatement();
$impala->test();
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('ImpalaPDOStatement', array($this)));
}
}
class ImpalaPDOStatement extends PDOStatement {
public function test() {
print "aaa";
}
}
错误信息是: SQLSTATE[HY000]:一般错误:PDO::ATTR_STATEMENT_CLASS 需要格式数组(类名,数组(ctor_args));类名必须是指定现有类的字符串。 我可以确认的是 ImpalaPDOStatement 存在,因为 $impala->test() 成功打印了一个字符串。所以我不知道错误信息是什么意思。
【问题讨论】:
-
您的
ImpalaPDOStatement应该首先扩展PDOStatement。完成后,重试并调试任何进一步的问题。 -
@Mjh,不好意思忘记复制原代码,我贴上修改后的代码。我扩展了 PDOStatement,但错误消息总是一样的。你有其他建议吗?谢谢。