SQLite3類有一個像這樣的選項。用PDO打開SQLite3爲READONLY?
$db = new SQLite3('mysqlitedb.db', SQLITE3_OPEN_READONLY);
在PDO您只需將開放:
$db = new PDO('sqlite:mysqlitedb.db');
我的問題是但是,有沒有辦法打開與PDO的數據庫,以只讀模式?
SQLite3類有一個像這樣的選項。用PDO打開SQLite3爲READONLY?
$db = new SQLite3('mysqlitedb.db', SQLITE3_OPEN_READONLY);
在PDO您只需將開放:
$db = new PDO('sqlite:mysqlitedb.db');
我的問題是但是,有沒有辦法打開與PDO的數據庫,以只讀模式?
我不認爲這是可能的與pdo(還?)。
php 5.3的pdo_sqlite驅動使用中的sqlite3_open(),但是您需要sqlite3_open_v2()來傳遞只讀標誌。
編輯:
但是一個補丁會相當容易。在ext/pdo_mysql/mysql_driver.c中查看pdo_mysql_handle_factory()
,以及它如何使用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]);