English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP SQLite

l'installation

depuis PHP 5.3.0, SQLite est activé par défaut3 extension. Il est possible d'utiliser --sans-sqlite3 Désactiver SQLite3 extension.

Les utilisateurs Windows doivent activer php_sqlite3.dll pour utiliser cette extension. Depuis PHP 5.3.0 à partir de là, ce DLL est inclus dans la version Windows distribuée de PHP.

Pour obtenir des instructions d'installation détaillées, il est recommandé de consulter nos tutoriels PHP et son site Web officiel.

PHP Interface API

Voici des programmes PHP importants qui peuvent répondre à vos besoins en base de données SQLite dans les programmes PHP. Si vous souhaitez en savoir plus sur les détails, veuillez consulter la documentation officielle PHP.

NuméroAPI & Description
1public void SQLite3::open ( filename, flags, encryption_key )

Ouvrir une SQLite 3 Base de données. Si la construction inclut le chiffrement, alors elle tentera d'utiliser la clé.

Si le nom du fichier filename est assigné à ':memory:'alors SQLite3::open() créera une base de données en mémoire, ce qui ne durera que pendant la durée de la session.

Si le nom du fichier filename est le nom réel du fichier de périphérique, alors SQLite3::open() tentera d'ouvrir le fichier de base de données en utilisant cette valeur de paramètre. Si un fichier de ce nom n'existe pas, un nouveau fichier de base de données nommé avec ce nom sera créé.

Les flags optionnels sont utilisés pour déterminer si la base de données SQLite doit être ouverte. Par défaut, lorsque l'on utilise SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE lors de l'ouverture.

2public bool SQLite3::exec ( string $query )

Cette routine fournit un raccourci pour exécuter une commande SQL, la commande SQL est fournie par le paramètre sql, et peut être composée de plusieurs commandes SQL. Ce programme est utilisé pour exécuter une requête sans résultat sur une base de données donnée.

3public SQLite3Résultat SQLite3::query ( string $query )

Cette routine exécute une requête SQL et retourne un SQLite3Résultat Objet.

4public int SQLite3::lastErrorCode ( void )

Cette routine retourne le code de résultat numérique de la dernière requête SQLite échouée.

5::open() Connexion de base de données ouverte.3::lastErrorMsg ( void )

Cette routine retourne le texte descriptif en anglais de la dernière requête SQLite échouée.

6public int SQLite3::changes ( void )

Cette routine retourne le nombre de lignes de base de données mises à jour ou insérées ou supprimées pour la dernière requête SQL.

7public bool SQLite3::close ( void )

该例程关闭之前调用 SQLite3Cette routine ferme la connexion SQLite précédemment appelée.

8::open() Connexion de base de données ouverte.3public string SQLite

::escapeString ( string $value )

Cette routine retourne une chaîne de caractères, dans l'instruction SQL, pour des raisons de sécurité, la chaîne de caractères a été correctement échappée.

Connection à la base de données

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Database opened successfully\n";
   }
?>

Le code PHP suivant montre comment se connecter à une base de données existante. Si la base de données n'existe pas, elle sera créée et finalement, un objet de base de données sera retourné. test.dbMaintenant, exécutons le programme ci-dessus pour créer notre base de données dans le répertoire actuel

Ouverture de la base de données réussie. Vous pouvez modifier le chemin selon vos besoins. Si la base de données est créée avec succès, le message suivant sera affiché :

Créer la table

Le code PHP suivant sera utilisé pour créer une table dans la base de données créée précédemment :

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Database opened successfully\n";
   }
   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY NOT NULL,
      NAME TEXT NOT NULL,
      AGE INT NOT NULL,
      ADDRESS CHAR(50),
      SALARY REAL);
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "La table créée avec succès\n";
   }
   $db->close();
?>

Lors de l'exécution de ce programme, il créera test.db Créer la table COMPANY dans la base de données et afficher le message suivant :

Base de données ouverte avec succès
La table créée avec succès

Opération d'INSERTION

Le programme PHP suivant montre comment créer des enregistrements dans la table COMPANY créée précédemment :

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Database opened successfully\n";
   }
   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Les enregistrements créés avec succès\n";
   }
   $db->close();
?>

Lors de l'exécution de ce programme, il créera les enregistrements spécifiés dans la table COMPANY et affichera les deux lignes suivantes :

Base de données ouverte avec succès
Les enregistrements créés avec succès

SELECT 操作

Le programme PHP suivant montre comment obtenir et afficher les enregistrements de la table COMPANY créée précédemment :

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Database opened successfully\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Opération effectuée avec succès\n";
   $db->close();
?>

L'exécution de ce programme génère les résultats suivants :

Base de données ouverte avec succès
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  20000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000
Opération effectuée avec succès

Opération de mise à jour

Le code PHP suivant montre comment utiliser une instruction UPDATE pour mettre à jour un enregistrement, puis obtenir et afficher les enregistrements mis à jour de la table COMPANY :

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Database opened successfully\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record updated successfully\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Opération effectuée avec succès\n";
   $db->close();
?>

L'exécution de ce programme génère les résultats suivants :

Base de données ouverte avec succès
1 Record updated successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  25000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000
Opération effectuée avec succès

Opération de suppression

Le code PHP suivant montre comment utiliser une instruction DELETE pour supprimer un enregistrement, puis obtenir et afficher les enregistrements restants de la table COMPANY :

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Database opened successfully\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID=2;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
     echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record deleted successfully\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Opération effectuée avec succès\n";
   $db->close();
?>

L'exécution de ce programme génère les résultats suivants :

Base de données ouverte avec succès
1 Enregistrement supprimé avec succès
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  25000
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000
Opération effectuée avec succès