pdo = new PDO($connection_string, $user, $password); $this->pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } /** * @return PDO Connection to database */ public function getPDO(): PDO { return $this->pdo; } /** * Find all tables in database. * * @return array The array of table names */ public function allTables(): array { return $this->pdo->query('SHOW TABLES')->fetchAll(PDO::FETCH_COLUMN); } /** * @return \PDOStatement|false */ public function prepare(string $sql) { return $this->pdo->prepare($sql); } public function beginTransaction(): void { $this->pdo->beginTransaction(); } public function commit(): void { $this->pdo->commit(); } public function rollback(): void { $this->pdo->rollback(); } public function errorCode(): ?string { return $this->pdo->errorCode(); } public function errorInfo(): array { return $this->pdo->errorInfo(); } /** * @return \PDOStatement|false */ public function query($sql) { return $this->pdo->query($sql); } public function lastInsertId(): string { return $this->pdo->lastInsertId(); } }