SQLite-PHP
Installation
L'extension SQLite3 est activée par défaut depuis PHP 5.3.0. Les extensions SQLite3 peuvent être désactivées au moment de la compilation en utilisant --without-sqlite3.
Les utilisateurs Windows doivent activer php_sqlite3.dll pour utiliser cette extension. Depuis PHP 5.3.0, cette DLL est incluse dans la distribution Windows de PHP.
Pour des instructions d'installation détaillées, il est recommandé de consulter notre tutoriel PHP et son site officiel.
API d'interface PHP
Les programmes PHP suivants sont importants qui peuvent répondre à vos besoins en matière d'utilisation de la base de données SQLite dans les programmes PHP. Si vous avez besoin de plus de détails, consultez la documentation PHP officielle.
Numéro de série | API et description |
---|---|
1 | vide public SQLite3 ::open ( nom de fichier, drapeaux, clé_de-cryptage ) Ouvrez une base de données SQLite 3. Si la version inclut le cryptage, alors la clé qu'elle tentera d'utiliser. Si le nom de fichier filename reçoit la valeur ':memory:', alors SQLite3::open() créera une base de données en mémoire dans la RAM, qui ne durera que pendant la durée de la session. Si filename est le nom réel du fichier de périphérique, alors SQLite3::open() utilisera la valeur de ce paramètre pour essayer d'ouvrir le fichier de base de données. Si un fichier portant ce nom n'existe pas, un nouveau fichier de base de données portant ce nom sera créé. Les indicateurs facultatifs sont utilisés pour déterminer s'il faut ouvrir la base de données SQLite. Activé par défaut lors de l'utilisation de SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE. |
2 | public bool SQLite3::exec ( string $query ) Cette routine fournit un raccourci pour exécuter des commandes 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. |
3 | public SQLite3Result SQLite3::query ( string $query ) Cette routine exécute un SQLite requête, si la requête renvoie un résultat, un objet SQLite3Result sera renvoyé. |
4 | public int SQLite3::lastErrorCode ( void ) Cette routine renvoie l'échec le plus récent Code de résultat numérique pour les requêtes SQLite. |
5 | chaîne publique SQLite3::lastErrorMsg ( void ) Cette routine renvoie l'échec le plus récent Une description textuelle en anglais de la requête SQLite. |
6 | public int SQLite3::changes (void) Cette routine renvoie le plus récent nombre de lignes de base de données mises à jour, insérées ou supprimées par l'instruction SQL. |
7 | public bool SQLite3::close (void) Cette routine est appelée avant la fermeture de SQLite3 ::open() Ouvrir la connexion à la base de données. |
8 | chaîne publique SQLite3::escapeString ( string $value ) Cette routine renvoie une chaîne, dans le Instruction SQL, la chaîne est correctement échappée pour des raisons de sécurité. |
Connexion à une base de données
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 un objet base de données sera renvoyé.
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database successfully\n"; } ?>
Maintenant, exécutons le programme ci-dessus pour créer notre base de données test.db dans le répertoire courant. Vous pouvez modifier le chemin selon vos besoins. Si la base de données est créée avec succès, alors un message comme indiqué ci-dessous s'affichera :
Open database successfully
Création d'une table
L'extrait de code PHP suivant sera utilisé pour créer une table dans la base de données précédemment créée :
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database 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 "Table created successfully\n"; } $db->close(); ?>
Lorsque le programme ci-dessus est exécuté, il crée la table COMPANY dans test.db et affiche le message ci-dessous :
Opened database successfully Table created successfully
Opération INSERT
below Le programme PHP montre comment créer un enregistrement dans la table COMPANY créée ci-dessus :
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database 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 "Records created successfully\n"; } $db->close(); ?>
Lorsque le programme ci-dessus est exécuté, il crée l'enregistrement donné dans la table COMPANY et affiche les deux lignes suivantes :
Opened database successfully Records created successfully
Opération 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 "Opened database 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 "Operation done successfully\n"; $db->close(); ?>
Lorsque le programme ci-dessus est exécuté, il produit les résultats suivants :
Opened database successfully 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 Operation done successfully
Opération UPDATE
Le code PHP suivant montre comment mettre à jour n'importe quel enregistrement à l'aide de l'instruction UPDATE, puis obtenir et afficher l'enregistrement mis à jour à partir 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 "Opened database 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 "Operation done successfully\n"; $db->close(); ?>
L'exécution du programme ci-dessus produit le résultat suivant :
Opened database successfully 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 Operation done successfully
Opération DELETE
Le code PHP suivant montre comment supprimer n'importe quel enregistrement à l'aide de l'instruction DELETE, puis obtenir et afficher les enregistrements restants du Table COMPANY :
<?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else { echo "Opened database 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 "Operation done successfully\n"; $db->close(); ?>
Lorsque le programme ci-dessus est exécuté, il produira les résultats suivants :
Opened database successfully 1 Record deleted successfully 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 Operation done successfully