Ich weiß, dass PHP 5 bereits SQLite unterstützt, aber aus irgendeinem Grund kann ich es nicht zum Laufen bringen.
Ich folgte den Anweisungen aus dem SQLite-Lernprogramm: Erste Schritte . Ich habe auch sichergestellt, dass die folgenden nicht aus der php.ini kommentiert sind:
%Vor%Aber wenn ich die PHP-Datei von localhost mit Firefox öffne, bekomme ich diesen Fehler:
Schwerwiegender Fehler: Klasse 'SQLiteDatabase' nicht gefunden.
Ich bin übrigens auf Windows, wenn diese Info zählt.
Was könnte die Ursache für dieses Problem sein?
Unter Windows müssen Sie Folgendes in Ihrem Ini festlegen:
%Vor%Ich empfehle Ihnen, diese Seite im Handbuch zu lesen.
Die Klasse SQLiteDatabase
ist ein Objekt aus der SQLite -Bibliothek, deren Unterstützung in PHP gelöscht wurde 5.4, aber auf verschiedenen Systemen und Konfigurationen könnte in früheren Releases deaktiviert werden, da diese Bibliothek lange Zeit als veraltet markiert wurde.
Die Bibliothek php_sqlite.dll
(Windows) oder php_sqlite.so
(Linux) wird in neueren PHP-Versionen nicht mehr unterstützt und durch php_sqlite3.dll
bzw. php_sqlite3.so
ersetzt.
Sie können:
Versuchen Sie, php_sqlite.dll
( php_sqlite.so
) irgendwo im Internet zu finden. Links wie dies oder dies kann hilfreich für Sie sein. Allerdings müssen Sie die alte SQLite-Bibliotheksdatei sorgfältig mit der PHP-Plattform ( x64
oder x86
), Build-Engine ( VC6
, VC9
oder VC11
), Version ( 5.x
) und type ( TS
für thread safe oder NTS
für nicht threadsicher ). Dies könnte eine schwierige Aufgabe sein.
Lassen Sie php_sqlite.dll
( SQLiteDatabase
) zurück und versenden Sie in Richtung new php_sqlite3.dll
( SQLite3
object). Sie müssen zuerst ein Werkzeug wie SQLite Studio verwenden, um Ihre Datenbankdatei von 2.1 auf 3.0 zu konvertieren (die Größe kann sogar um ein verringert werden halb) und dann vergleichen Sie SQLite und SQLite3 PHP-Handbuchseiten zum Ändern von notwendigen Objekten und Funktionen aufrufen.
Wenn Option zwei ist, beachten Sie, dass dies keine schwere Arbeit sein sollte, da die Änderungen nicht so groß sind. Zum Beispiel, was ich bisher gelernt habe:
SQLiteDatabase
- & gt; SQLite3
, SQLiteDatabase::unbufferedQuery
- & gt; SQLite3::query
, SQLiteResult::fetchAll(SQLITE_*)
- & gt; SQLite3Result::fetchArray(SQLITE3_*)
etc. Was das Holen betrifft, hatten wir in alten SQLite :
%Vor%Während wir in SQLite3 sollten wir:
%Vor%Andere Änderungen erfordern ähnlich viel Arbeit, also sollte dies kein lebenslanger Prozess sein.
Ich rate jedem natürlich dringend, nach vorne zu gehen und zweite Option zu wählen. Fortschritt ist in den meisten Fällen die bessere von zwei verfügbaren Optionen.