目前,PHP還不支援Sqlite3,即不支援DB3尾碼的Sqlite資料庫檔案.使用PHP串連Sqlite3時會報錯,以下為一個解決辦法:[ 複製引用資料 ]以下內容為引用內容:
If you get an error message:Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a databasethen most probably your code is accessing a SQLite3 database.sqlite_open() only supports SQLite2. Use PDO to access SQLite3.
目前找到的解決辦法是使用PDO即可串連Sqlite3.這裡也回憶了一下PDO和ADOdb各是什麼東東.PDO和ADOdb均是資料庫抽象層.總的功能是可以實現串連多個資料庫,特別適合一個程式中實現多個資料庫.PDO支援資料庫移植,如果你的部署將來有多種資料庫,那就用它了.同時,PDO是C設計的,執行效率較高.他已經封裝為PHP的擴充庫組件了.運行快,效率高,我總結吧,還要安全一些,可以防SQL注入,初學,不知道有沒有錯.ADOdb是PHP類,是一個PHP檔案,相對PDO來講,運行效率較低,但支援性也較廣泛,使用起來也簡單方便.據說Adodb也支援Sqlite,不過,ADOdb也是基於PHP組件,那麼肯定也不支援SQLite3了,所以PDO是解決這個問題的唯一辦法.這裡,表示一下茫然,Sqlite3出了有四年了吧,PHP5幹什麼吃的去了?然後記下PDO的,以及PDO與SQLite的串連方法:PDO:http://pecl.php.net/package/pdoPDO_Sqlite 函數及文法:http://cn.php.net/manual/en/ref.pdo-sqlite.php下載以後並行安裝就可以了,PHP5.1已經內建了PDO的相關組件,我們要做的就是開啟PHP.ini把PDO和PDO_sqlite啟用了extension=php_pdo.dllextension=php_pdo_sqlite.dll啟用PDO和PDO_dqlite以後,我就開始寫一段測試代碼,拷了一個任務資料庫到程式目錄中以備測試.[ 複製引用資料 ]以下內容為引用內容:
<?$dbh = new PDO('sqlite:spiderresult.db');if ($dbh){echo 'OK';}else{echo 'Err';}foreach ($dbh->query('SELECT id FROM content limit 10;') as $row){echo "$row[0]";}?>