Как открыть базу данных SQLite3, используя PDO?

Пример открытия файлов баз данных SQLite3 в PHP, используя расширение PDO: проверка наличия файла, особенности автоматического создание файла баз данных при его открытии, обработка исключений PDOException, атрибут режима сообщений об остальных ошибках (PDO::ATTR_ERRMODE).

Мы уже разобрались с проверкой доступности PDO SQLite, а значит можно попробовать открыть файл базы данных и посмотреть какие здесь подводные камни. А в том, что они есть — не сомневайтесь, я просто постараюсь дать вами оптимальный пример решение, остальное думайте сами.

Способ указания информации, необходимой для подключения к базе данных определяется спецификой выбранного PDO-драйвера. В общем виде DSN состоит из имени драйвера и параметров подключения, разделённых знаком «двоеточия».

В частности, имя PDO драйвера для SQLite2 — sqlite2, а для SQLite3 просто sqlite. В качестве параметра используется только путь и имя файла базы данных (например: sqlite:path/db.dqlite) или :memory:. Проблема в том, что при подключении к отсутствующему файлу базы данных не возникает ошибки: если его нет — он создаётся. Таким образом, проверку исключения делается потому, что так правильно, а вот функция file_exists() здесь очень даже пригодиться:

define('DB_FILENAME', 'path/filename.sqlite');
if( !file_exists(@DB_FILENAME) ) die('File '. DB_FILENAME .' not exists.');
else {
  try {
    $db = new PDO('sqlite:'. @DB_FILENAME);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  } catch(PDOException $e) {
    die($e->getMessage());
  }
}

Помимо прочего будет не лишним задать атрибут режима сообщений остальных ошибок PDO::ATTR_ERRMODE. Чтоб не заморачиваться ставьте PDO::ERRMODE_EXCEPTION — выбрасывать исключения.