所以这是我多年来一直想解决的问题。将一些小型(单文件)应用程序转换为 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);
进入我的班级without重新创建构造函数?
我刚刚开始学习 PHP 的类语法,所以这对某人来说是一个非常基本的问题,但它同时会回答我的一些其他问题。