扩展PDO语句类

Lev*_*ith 18 php pdo

是否可以扩展PHP PDO语句类以向其添加自定义方法?这与扩展基础PDO类不同.如果是这样,那么如何才能实现它,因为只有在通过PDO类运行查询时才返回语句类?

Gor*_*don 25

您可以使用以下内容设置类PDO::setAttribute():

PDO :: ATTR_STATEMENT_CLASS:设置从PDOStatement派生的用户提供的语句类.不能与持久性PDO实例一起使用.需要数组(字符串classname,array(mixed constructor_args)).

例:

$pdo->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('Custom', array($pdo)));
Run Code Online (Sandbox Code Playgroud)

  • 请注意,默认构造函数不带参数(因此没有`array($ pdo)`).此外,为了在命名空间中使用,您可以使用`Custom :: class`而不是`'Custom'`,它为您提供了关于当前`use`导入的完全限定类名. (3认同)