Comment puis-je utiliser et accéder à une firebase database SQLite en utilisant PHP et Wamp Server?

Je sais que PHP 5 supporte déjà SQLite mais pour une raison quelconque, je ne peux pas le faire fonctionner.

J’ai suivi les instructions du tutoriel SQLite: Mise en route . Je me suis également assuré que les éléments suivants ne soient pas commentés depuis php.ini:

extension=php_pdo_sqlite.dll extension=php_sqlite.dll. 

Mais quand j’ouvre le fichier PHP de localhost en utilisant Firefox, j’obtiens cette erreur:

Erreur fatale: la classe ‘SQLiteDatabase’ est introuvable.

Je suis sur Windows en passant, si cette information est importante.

Quelle peut être la cause de ce problème?

Je pense que la classe SQLiteDatabase provient de l’extension sqlite plutôt que de pdo_sqlite . Vous pouvez donc activer l’extension sqlite ou utiliser à la place PDO:

 exec('some sql query'); 

Sous Windows, vous devez avoir le jeu suivant dans votre ini:

 extension=php_pdo.dll extension=php_sqlite.dll 

Je vous recommande de lire cette page dans le manuel.

La classe SQLiteDatabase est un object de la bibliothèque sqlite , dont la prise en charge a été abandonnée en PHP 5.4, mais sur divers systèmes et configurations, elle pourrait être désactivée dans les versions précédentes, car cette bibliothèque était longtemps considérée comme obsolète .

La bibliothèque php_sqlite.dll (Windows) ou php_sqlite.so (Linux) n’est plus prise en charge dans les nouvelles versions de PHP et a été remplacée respectivement par php_sqlite3.dll ou php_sqlite3.so .

Vous pouvez:

  1. Essayez de trouver php_sqlite.dll ( php_sqlite.so ) quelque part sur Internet. Des liens comme celui – ci peuvent vous être utiles. Cependant, vous devrez faire correspondre soigneusement l’ancien fichier de bibliothèque SQLite à la plate-forme de votre PHP ( x64 ou x86 ), générer le moteur ( VC6 , VC9 ou VC11 ), la version ( 5.x ) et le type ( TS pour thread-safe ou NTS pour non -pas sûr ). Cela pourrait être une tâche difficile.

  2. Laissez php_sqlite.dll ( SQLiteDatabase ) derrière et php_sqlite3.dll vers le nouveau php_sqlite3.dll (object SQLite3 ). Vous devez d’abord utiliser un outil comme SQLite Studio pour convertir votre fichier de firebase database de 2.1 à 3.0 (la taille peut être réduite de moitié), puis comparer soigneusement les pages de manuel SQLite et SQLite3 pour modifier les objects et les fonctions nécessaires.

Si l’option deux , notez que cela ne devrait pas être un travail difficile, car les changements ne sont pas si importants. Par exemple, ce que j’ai appris jusqu’à présent:

  • SQLiteDatabase -> SQLite3 ,
  • SQLiteDatabase::unbufferedQuery -> SQLite3::query ,
  • SQLiteResult::fetchAll(SQLITE_*) -> SQLite3Result::fetchArray(SQLITE3_*) etc.

En ce qui concerne l’extraction, dans l’ancien SQLite, nous avions:

 $rowsIMEI = $db->unbufferedQuery($imeiSQL)->fetchAll(SQLITE_ASSOC); foreach($rowsIMEI as $r) { ... } 

Alors que, dans le nouveau SQLite3, nous devrions:

 $rowsIMEI = $db->query($imeiSQL); while($r = $rowsIMEI->fetchArray(SQLITE3_ASSOC)) { ... } 

D’autres changements nécessitent une quantité de travail similaire, ce qui ne devrait pas être un processus à vie.

Bien sûr, je conseille vivement à quiconque d’aller de l’avant et de choisir la deuxième option. La progression est dans la plupart des cas la meilleure des deux options disponibles.