2009-08-29 13 views
10

SQLite3クラスには、このようなオプションがあります。 PDOでSQLite3をPDOでREADONLYとして開く?

$db = new SQLite3('mysqlitedb.db', SQLITE3_OPEN_READONLY); 

あなたと単純にオープンになります。

$db = new PDO('sqlite:mysqlitedb.db'); 

私の質問は、しかし、READONLYモードでは、PDOでデータベースを開くことが方法ですか?

答えて

2

私はそれが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文字列を解析する方法を見てください。

2

これはPHP 7.3(2018年後半にリリース予定)のリリースで可能になります。次のように

THESの構文は次のとおりです。

$db = new PDO('sqlite:mysqlitedb.db', null, null, [PDO::SQLITE_ATTR_OPEN_FLAGS => PDO::SQLITE_OPEN_READONLY]); 

Upstream commit

関連する問題