SQLite - PHP
Installation
Depuis PHP 5.3.0, l'extension SQLite3 est activée par défaut. Vous pouvez utiliser--without-sqlite3pour désactiver l'extension SQLite3.
Les utilisateurs de 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 de l'interface PHP
Les programmes PHP suivants sont importants et peuvent répondre à vos besoins d'utilisation des bases de données SQLite dans les programmes PHP. Si vous avez besoin de plus de détails, veuillez consulter la documentation officielle de PHP.
| Non. | API et description |
|---|---|
| 1 | public void SQLite3::open ( filename, flags, encryption_key ) Ouvre une base de données SQLite 3. Si la version compilée inclut le chiffrement, elle tentera d'utiliser la clé. Si le nom de fichierfilenameest défini sur':memory:', alors SQLite3::open() créera une base de données en mémoire dans la RAM, qui ne dure que le temps de la session. Si le nom de fichier filename est un nom de fichier de périphérique réel, alors SQLite3::open() utilisera la valeur de ce paramètre pour tenter 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 optionnels sont utilisés pour déterminer s'il faut ouvrir la base de données SQLite. Par défaut, elle s'ouvre lorsque SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE est utilisé. |
| 2 | public bool SQLite3::exec ( string $query ) Cette routine fournit un raccourci pour exécuter des commandes SQL, qui sont fournies par le paramètre sql et peuvent consister en 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 ) This routine executes an SQL query and returns anSQLite3Result. |
| 4 | public int SQLite3::lastErrorCode ( void ) Cette routine renvoie le code de résultat numérique de la requête SQLite la plus récente ayant échoué. |
| 5 | public string SQLite3::lastErrorMsg ( void ) Cette routine renvoie la description textuelle en anglais de la requête SQLite la plus récente ayant échoué. |
| 6 | public int SQLite3::changes ( void ) Cette routine renvoie le nombre de lignes de base de données mises à jour, insérées ou supprimées par l'instruction SQL la plus récente. |
| 7 | public bool SQLite3::close ( void ) Cette routine ferme la connexion à la base de données précédemment ouverte en appelant SQLite3::open(). |
| 8 | public string SQLite3::escapeString ( string $value ) Cette routine renvoie une chaîne correctement échappée pour être utilisée dans une instruction SQL pour des raisons de sécurité. |
Connexion à la 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 enfin un objet de 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 dans le répertoire couranttest.db. Vous pouvez modifier le chemin selon vos besoins. Si la base de données est créée avec succès, le message présenté ci-dessous sera affiché :
Open database successfully
Créer 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 vatest.dbcréer la table COMPANY dedans, et afficher le message suivant :
Opened database successfully Table created successfully
Opération INSERT
Le programme PHP suivant montre comment créer des enregistrements 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 les enregistrements donnés 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 récupérer 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 produira le résultat suivant :
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 utiliser l'instruction UPDATE pour mettre à jour n'importe quel enregistrement, puis récupérer 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 "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();
?>
Lorsque le programme ci-dessus est exécuté, il produira 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 utiliser l'instruction DELETE pour supprimer n'importe quel enregistrement, puis récupérer 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 "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 le résultat suivant :
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 successfullyAutres extensions