SQLite3クラスには、このようなオプションがあります。 PDOでSQLite3をPDOでREADONLYとして開く?
$db = new SQLite3('mysqlitedb.db', SQLITE3_OPEN_READONLY);
あなたと単純にオープンになります。
$db = new PDO('sqlite:mysqlitedb.db');
私の質問は、しかし、READONLYモードでは、PDOでデータベースを開くことが方法ですか?
SQLite3クラスには、このようなオプションがあります。 PDOでSQLite3をPDOでREADONLYとして開く?
$db = new SQLite3('mysqlitedb.db', SQLITE3_OPEN_READONLY);
あなたと単純にオープンになります。
$db = new PDO('sqlite:mysqlitedb.db');
私の質問は、しかし、READONLYモードでは、PDOでデータベースを開くことが方法ですか?
私はそれがpdo(まだですか?)とは考えていません。
PHP 5.3のpdo_sqliteドライバは、をpdo_sqlite_handle_factory()
で使用しますが、読み取り専用フラグを渡すにはsqlite3_open_v2()が必要です。
編集:
しかし、パッチはかなり簡単です。 ext/pdo_mysql/mysql_driver.cのpdo_mysql_handle_factory()
と、struct pdo_data_src_parser vars[]
を使ってDNS文字列を解析する方法を見てください。
これはPHP 7.3(2018年後半にリリース予定)のリリースで可能になります。次のように
THESの構文は次のとおりです。
$db = new PDO('sqlite:mysqlitedb.db', null, null, [PDO::SQLITE_ATTR_OPEN_FLAGS => PDO::SQLITE_OPEN_READONLY]);