ClassSQLiteDatabase
是sqlite库中的一个对象,该支持在 PHP 5.4 中被删除,但在早期版本中可以禁用各种系统和配置,因为该库长期以来被标记为将被弃用。
较新版本的 PHP 不再支持库php_sqlite.dll
(Windows) 或(Linux),并分别替换为或。php_sqlite.so
php_sqlite3.dll
php_sqlite3.so
你可以:
尝试在 Internet 的某个地方找到php_sqlite.dll
( )。php_sqlite.so
像这样或这样的链接可能对你有帮助。但是,您必须仔细地将旧的 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))
{
...
}
其他更改需要类似的工作量,因此这不应该是一个终身过程。
当然,我强烈建议任何人继续前进并选择第二个选项。在大多数情况下,进步是两个可用选项中较好的一个。