クラスSQLiteDatabase
はsqliteライブラリのオブジェクトであり、PHP 5.4でサポートが終了しましたが、このライブラリは非推奨になると長い間マークされていたため、以前のリリースではさまざまなシステムと構成で無効にできました。
ライブラリphp_sqlite.dll
(Windows)またはphp_sqlite.so
(Linux)は、新しいバージョンのPHPではサポートされなくなり、それぞれphp_sqlite3.dll
またはに置き換えられましphp_sqlite3.so
た。
あなたはできる:
インターネットのどこかでphp_sqlite.dll
( )を見つけてみてください。このphp_sqlite.so
ようなリンクまたはこれはあなたに役立つかもしれません。ただし、古いSQLiteライブラリファイルをPHPのプラットフォーム(または)、ビルドエンジン(、または)、バージョン()、およびタイプ(スレッドセーフまたは非スレッドセーフの場合)に注意深く一致させる必要があります。これは難しい作業かもしれません。x64
x86
VC6
VC9
VC11
5.x
TS
NTS
php_sqlite.dll
( )を残して、新しい(オブジェクト)SQLiteDatabase
に向けて出荷します。最初にSQLiteStudioなどのツールを使用してデータベースファイルを2.1から3.0に変換し(サイズを半分に減らすことができます)、次にSQLiteとSQLite3のPHPマニュアルページを注意深く比較して、必要なオブジェクトと関数呼び出しを変更する必要があります。php_sqlite3.dll
SQLite3
オプション2の場合、変更はそれほど大きくないため、これは難しい作業ではないことに注意してください。たとえば、私がこれまでに学んだこと:
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))
{
...
}
他の変更には同様の作業量が必要になるため、これは生涯にわたるプロセスではありません。
もちろん、私は誰にでも先に進んで2番目のオプションを選択することを強くお勧めします。ほとんどの場合、進捗状況は2つの利用可能なオプションのうちの1つです。