Класс SQLite3 имеет такой вариант.
$db = new SQLite3('mysqlitedb.db', SQLITE3_OPEN_READONLY);
В PDO вы просто откроете:
$db = new PDO('sqlite:mysqlitedb.db');
Мой вопрос, однако, есть способ открыть базу данных с PDO, в режиме READONLY?
Я не думаю, что это возможно с pdo (еще?).
Драйвер pdo_sqlite для php 5.3 использует sqlite3_open () в pdo_sqlite_handle_factory()
но вам нужно sqlite3_open_v2 () передать флаг только для чтения.
редактировать:
Но патч будет довольно простым. Взгляните на pdo_mysql_handle_factory()
в ext / pdo_mysql / mysql_driver.c и как он использует struct pdo_data_src_parser vars[]
для синтаксического анализа строки dns.
Это станет возможным благодаря выпуску PHP 7.3 (рассчитанный для выпуска в конце 2018 года).
Синтаксис синтаксиса следующий:
$db = new PDO('sqlite:mysqlitedb.db', null, null, [PDO::SQLITE_ATTR_OPEN_FLAGS => PDO::SQLITE_OPEN_READONLY]);
Поток вверх