2009-08-29 11 views
10

SQLite3 Sınıfı bunun gibi bir seçeneğe sahiptir.SQLite3'ü PDO ile OKUMA olarak mı açıyorsunuz?

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

yapacağınız ile basitçe açık:

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

Sorum PDO ile bir veritabanını açmak için bir yol READONLY modunda, orada Ancak nedir?

cevap

2

Bunun pdo ile mümkün olduğunu sanmıyorum (henüz?).
php 5.3'ün pdo_sqlite sürücüsü pdo_sqlite_handle_factory()'da sqlite3_open() kullanır, ancak salt okunur bayrağını geçmek için sqlite3_open_v2() öğesine ihtiyacınız vardır.

düzenleme:
Ancak bir yama oldukça kolay olurdu. Ext/pdo_mysql/mysql_driver.c dosyasında pdo_mysql_handle_factory()'a ve dns dizesini ayrıştırmak için struct pdo_data_src_parser vars[]'a nasıl bakın.

2

Bu, PHP 7.3 sürümü (2018'in sonlarında piyasaya sürülmesi için tahmin edilmiştir) ile mümkün olacaktır. aşağıdaki gibi

THES sözdizimi:

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

Upstream commit