【发布时间】:2012-08-29 17:50:55
【问题描述】:
所以这是我多年来一直想要解决的问题。将一些小型(单文件)应用程序转换为 PDO。我可以使用 PDO,连接到数据库并运行查询,一切正常。
但是每次我初始化一个新的 PDO 时,我也必须运行 setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
是的,这只是一行,但有一天我可能需要在其中添加更多内容。对我来说,以某种方式扩展 PDO 类似乎更好,这样我就可以用一行来启动我的数据库连接。创建我自己的类,即使在这个阶段只添加一行代码,如果我决定在未来添加任何其他东西,我也可以面向未来。
我发现了类似的东西......
class myPDO extends PDO {
public function __construct($dsn, $user=null, $pass=null, $options=null) {
parent::__construct($dsn, $user, $pass, $options);
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
}
// THEN A SIMPLE 1 LINER TO CONNECT - USING TRY/CATCH AS WELL OF COURSE
$pdo_conn = new myPDO($cfg['pdo_dsn'], $cfg['pdo_user'], $cfg['pdo_pass'], $cfg['pdo_options']);
在扩展类时,我假设我实际上不需要重新创建构造函数。
有没有办法可以将我的$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 集成到我的类中而不重新创建构造函数?
我刚刚开始使用 PHP 的类语法,所以这对某些人来说是一个非常基本的问题,但它会同时为我回答一些其他问题。
【问题讨论】:
标签: php constructor pdo