展开php pdo以支持impala,但setattribute()函数失败

w51jfk4q  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(309)

展开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需要格式数组(classname,array(ctor_args));类名必须是指定现有类的字符串。我能确认的是impalapdostatement是存在的,因为$impala->test()成功地打印了一个字符串。所以我不知道错误信息是什么意思。

klr1opcd

klr1opcd1#

必须重写的受保护构造函数 PDOStatement :

class ImpalaPDOStatement extends PDOStatement {
    public $dbh;

    // Constructor must be overrided
    protected function __construct($dbh) {
        $this->dbh = $dbh;
    }

    public function test() {
        print "aaa";
    }
}

相关问题