Я пытаюсь написать оболочку PDO, но у меня проблемы с конструктором. В идеале я хотел бы вызвать родительский конструктор, но по какой-то причине он не работает. Я попытался (проверить), чтобы проверить, создается ли новый PDO, и это действительно работает, что меня больше всего сбивает с толку.
Вот мой код:
class db extends PDO {
private $dbconn;
public function __construct() {
$dsn = 'mysql:dbname=' . MYSQL_DB . ';host=' . MYSQL_HOST;
$user = MYSQL_USER;
$pw = MYSQL_PW;
try {
$this->dbconn = parent::__construct($dsn, $user, $pw);
$this->dbconn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $this->dbconn;
}
catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();;
}
}
}
Он работает, если я заменяю parent ::
строка с $ this-> dbconn = new PDO ($ dsn, $ user, $ pw);
Я считаю, что «правильный / элегантный» способ сделать это - использовать parent ::
синтаксис, поэтому я хотел бы знать, почему он не работает / как я могу это исправить. Кто-нибудь может помочь?
Спасибо!