PHP - 如何扩展SQLite3Result类

时间:2014-10-15 23:37:13

标签: php sqlite extend

这是我到目前为止所提出的:

class SQLite3_extended extends SQLite3 {
  public function query($string){
    $result = parent::query($string);
    if(is_bool($result))
      return $result;
    else
      return new SQLite3Result_extended($this);
  } 
}

class SQLite3Result_extended extends SQLite3Result {
  public function test(){
    echo 'SQLite3Result extended successfully!';
  } 
}

我明白了:致命错误:从上下文'SQLite3_extended

调用私有SQLite3Result :: __ construct()

我如何扩展SQLite3Result类?

1 个答案:

答案 0 :(得分:0)

你做不到。 SQLite3Result类只能由SQLite3::query()在内部实例化;没有办法自己构造这个类或子类的实例。

如果需要可扩展的数据库类,请使用PDO。您可以通过使用PDO::ATTR_STATEMENT_CLASS参数调用PDO::setAttribute()来为语句/结果使用自定义子类。作为奖励,它可以使您支持除SQLite之外的数据库引擎。