8

PHP 5はすでにSQLiteをサポートしていることは知っていますが、何らかの理由でそれを機能させることができません。

SQLiteチュートリアルの指示に従いました:はじめに。また、php.iniから以下がコメントアウトされていないことを確認しました。

extension=php_pdo_sqlite.dll 
extension=php_sqlite.dll.

しかし、Firefoxを使用してローカルホストからPHPファイルを開くと、次のエラーが発生します。

致命的なエラー:クラス'SQLiteDatabase'が見つかりません。

ちなみに、その情報が重要な場合は、私はWindowsを使用しています。

この問題の原因は何でしょうか?

4

3 に答える 3

9

クラスはむしろSQLiteDatabase拡張子からのものだと思います。したがって、拡張機能を有効にするか、代わりにPDOを使用できます。sqlitepdo_sqlitesqlite

<?php
$conn = new PDO('sqlite:c:/mydb.sq3');
$conn->exec('some sql query');
于 2009-07-07T09:25:49.513 に答える
5

Windowsでは、iniに次のセットを設定する必要があります。

extension=php_pdo.dll
extension=php_sqlite.dll

マニュアルのこのページを読むことをお勧めします。

于 2009-07-07T09:31:42.557 に答える
2

クラスSQLiteDatabasesqliteライブラリのオブジェクトであり、PHP 5.4でサポートが終了しましたが、このライブラリは非推奨になると長い間マークされていたため、以前のリリースではさまざまなシステムと構成で無効にできました。

ライブラリphp_sqlite.dll(Windows)またはphp_sqlite.so(Linux)は、新しいバージョンのPHPではサポートされなくなり、それぞれphp_sqlite3.dllまたはに置き換えられましphp_sqlite3.soた。

あなたはできる:

  1. インターネットのどこかでphp_sqlite.dll( )を見つけてみてください。このphp_sqlite.soようなリンクまたはこれはあなたに役立つかもしれません。ただし、古いSQLiteライブラリファイルをPHPのプラットフォーム(または)、ビルドエンジン(、または)、バージョン()、およびタイプ(スレッドセーフまたはスレッドセーフの場合)に注意深く一致させる必要があります。これは難しい作業かもしれません。x64x86VC6VC9VC115.xTSNTS

  2. php_sqlite.dll( )を残して、新しい(オブジェクト)SQLiteDatabaseに向けて出荷します。最初にSQLiteStudioなどのツールを使用してデータベースファイルを2.1から3.0に変換し(サイズを半分に減らすことができます)、次にSQLiteSQLite3のPHPマニュアルページを注意深く比較して、必要なオブジェクトと関数呼び出しを変更する必要があります。php_sqlite3.dllSQLite3

オプション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つです。

于 2013-05-16T13:03:21.490 に答える