類SQLiteDatabase
是sqlite庫中的對象,它支持在PHP 5.4下降,但對各種系統和配置可以在更早的版本中被禁用,因爲這個庫被標記爲將被棄用很長一段時間。
Library的新版本不再支持Windows(Windows)或php_sqlite.so
(Linux),並分別用php_sqlite3.dll
或php_sqlite3.so
替換。
您可以:
嘗試php_sqlite.dll
(php_sqlite.so
)某處網上找的。像this或this這樣的鏈接可能對您有所幫助。但是,你必須仔細地匹配舊SQLite庫文件到你的PHP的平臺(x64
或x86
),構建引擎(VC6
,VC9
或VC11
),版本(5.x
)和式(TS
爲線程安全或NTS
爲非線程安全)。這可能是一項艱鉅的任務。
離開php_sqlite.dll
(SQLiteDatabase
)後面,朝着新的php_sqlite3.dll
(SQLite3
對象)的船。您必須先使用類似SQLite Studio這樣的工具將您的數據庫文件從2.1轉換爲3.0(大小可以降低一半),然後仔細比較SQLite和SQLite3 PHP手冊頁以更改必要的對象和函數調用。
如果選擇,注意,這不應該是一個艱苦的工作,因爲變化並不大。例如,我已經學會爲止:
SQLiteDatabase
- >SQLite3
,
SQLiteDatabase::unbufferedQuery
- >SQLite3::query
,
SQLiteResult::fetchAll(SQLITE_*)
- >SQLite3Result::fetchArray(SQLITE3_*)
等
至於取,在舊SQLite我們有:
$rowsIMEI = $db->unbufferedQuery($imeiSQL)->fetchAll(SQLITE_ASSOC);
foreach($rowsIMEI as $r)
{
...
}
雖然在新SQLite3我們應該:
$rowsIMEI = $db->query($imeiSQL);
while($r = $rowsIMEI->fetchArray(SQLITE3_ASSOC))
{
...
}
其他變化要求的工作類似的量,所以這不應該是一個終身的過程。
我當然強烈建議任何人前進並選擇秒選項。在大多數情況下,進展是兩種可用選項中較好的一種。
非常感謝!我想我能夠通過打開數據庫,因爲現在錯誤與查詢有關!現在我只需要學習語法和全部!再次感謝! – Jarvis 2009-07-07 17:24:25