2009-08-29 6 views
10

SQLite3 क्लास में ऐसा विकल्प है।पीडीओ के साथ धीरे-धीरे SQLite3 खोलना?

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

पीडीओ में आप होगा बस के साथ खुला:

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

मेरा प्रश्न है, तथापि है वहाँ पीडीओ के साथ एक डेटाबेस को खोलने के लिए एक रास्ता है, केवल पढ़ने मोड में?

उत्तर

2

मुझे नहीं लगता कि यह pdo (अभी तक?) के साथ संभव है।
php 5.3 का pdo_sqlite ड्राइवर sqlite3_open()pdo_sqlite_handle_factory() में उपयोग करता है लेकिन आपको केवल ध्वज पढ़ने के लिए sqlite3_open_v2() की आवश्यकता होती है।

संपादित करें:
लेकिन एक पैच काफी आसान होगा। Ext/pdo_mysql/mysql_driver.c में pdo_mysql_handle_factory() पर एक नज़र डालें और यह डीएनएस स्ट्रिंग को पार्स करने के लिए struct pdo_data_src_parser vars[] का उपयोग कैसे करता है।

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

संबंधित मुद्दे