<?php class Database { private $pdo; public function __construct($dbFile) { // pdo and pdo_sqlite needed if ( !extension_loaded('pdo_sqlite') ) { throw new Exception('PDO extension for SQLite not loaded.'); } // database file check if (empty($dbFile) || !file_exists($dbFile)) { throw new Exception('Database file is not found.'); } // connect to database // FIXME: add mysql/mariadb option try { $this->pdo = new PDO("sqlite:" . $dbFile); $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { throw new Exception('DB connection failed: ' . $e->getMessage()); } } public function getConnection() { return $this->pdo; } } ?>