Pré-requis

POO en PHP

Sécurité

Injection SQL

6.Le langage PHP

6.15.Utilisation de bases de données avec PHP

6.15.2.Utilisation de SQLite

6.15.2.6.Requête SQL ne retournant pas de résultat (ex: CREATE TABLE, INSERT, UPDATE, etc.)

Pour exécuter une requête SQL[c'est quoi?] nous pouvons faire appel à la méthode queryExec(). Cette méthode ne levera pas d'exception en cas d'erreur mais retournera la valeur FALSE et le message d'erreur peut être récupéré dans une variable passée en second paramètre.
<?php
$base = 'phpfacile_mabase.sqlite';
try {
    $bd = new SQLiteDatabase($base);
} catch (SQLiteException $e) {
    die("La création ou l'ouverture de la base [$base] a échouée ".
         "pour la raison suivante: ".$e->getMessage());
}
// Ajout de données dans la table
$sql = "INSERT INTO demo (visiteur, datevisite) ".
            "VALUES ('phpfacile', '".date("Y-m-d H:i:s")."')";
$reponse = $bd->queryExec($sql, $err);
if ($reponse === FALSE) {
    echo "La requête a échouée pour la raison suivante: ".$err;
} else {
    echo "Un nouvel enregistrement a été ajouté à la base";
}

// Deconnexion
$bd = null;
?>
Ce script suppose que vous avez au préalable créé une table nommée "demo" possédant un champ visiteur de type chaîne de caractères (ex: VARCHAR(128)) et un champ datevisite de type chaîne de caractères (ex: VARCHAR(19)). Cela peut se faire en exécutant la requête suivante
CREATE TABLE demo (visiteur VARCHAR(64), datevisite VARCHAR(19))
ou en utilisant une interface graphique de gestion des bases SQLite[comment?] (comme SQLiteManager).
rem
  • La requête "CREATE TABLE" peut elle-même être exécutée
    • via un outil d'administration de SQLite [comment?]
    • en modifiant la requête d'insertion du script présenté dans ce chapitre par la requête de création de base. Ce qui donne le code

6.15.2.7.Requête SQL retournant des résultats (ex: SELECT)

Pour une requête de type SELECT, nous ferons appel à la fonction query(). Cette méthode retourne un objet résultat (ici la variable $reponse) qui possède une méthode fetch() permettant de récupéré le premier résultat non lu.
<?php
$base = 'phpfacile_mabase.sqlite';
try {
    $bd = new SQLiteDatabase($base);
} catch (SQLiteException $e) {
    die("La creation ou l'ouverture de la base [$base] a echouee ".
         "pour la raison suivante: ".$e->getMessage());
}
// Lecture des donnees dans la table
$sql = "SELECT visiteur, datevisite FROM demo";
$reponse = $bd->query($sql, SQLITE_BOTH, $err);
if ($reponse === FALSE) {
    echo "La requete a echouee pour la raison suivante: ".$err;
} else {
    echo "Voici le contenu de la table demo:\n";
    while ($row = $reponse->fetch()) {
        echo $row['visiteur']." - ".$row['datevisite']."\n";
    }
}

// Deconnexion
$bd = null;
?>
Si vous exécutez ce script vous obtiendrez autant de résultats que de fois où vous avez lancé le script d'insertion précédent, avec à chaque fois la date de l'insertion.
L'utilisation de la constante SQLITE_BOTH comme second paramètre de la méthode fetch() permet d'obtenir le résultat sous forme d'un tableau à la fois associatif (les clés du tableau sont les noms des champs de la table) et indexé (à l'index 0 correspond le premier champ retourné par SELECT, à l'index 1 le second, etc.).
Ici vous pouvez apprendre :
1.Introduction
2.Installation de PHP
3.Exécuter un script PHP
4.Configuration et environnement d'exécution de PHP
5.L'environnement de développement
6.Le langage PHP
6.1.Introduction
6.2.Mon premier script
6.3.La syntaxe
6.4.Les boucles (for, while, foreach, do) en PHP
6.5.Les tableaux (array) en PHP
6.6.Les fonctions
6.7.Include
6.8.Programmation orientée objet
6.9.Les fonctions de manipulation de tableaux
6.10.Les dates
6.11.Fichiers et répertoires
6.12.Les paramètres d'entrée d'un script PHP
6.13.Utilisation de la librairie graphique
6.14.JpGraph pour tracer courbes et diagrammes
6.15.Utilisation de bases de données avec PHP
6.15.1.Introduction
6.15.2.Utilisation de SQLite
6.15.2.1.Introduction
6.15.2.2.Installation
6.15.2.3.Création de la base
6.15.2.4.Utilisation
6.15.2.5.La connexion et la déconnexion
6.15.2.6.Requête SQL ne retournant pas de résultat (ex: CREATE TABLE, INSERT, UPDATE, etc.)
6.15.2.7.Requête SQL retournant des résultats (ex: SELECT)
6.15.3.PHP et MySQL (avec MySQLi)
6.15.4.Utilisation de MySQL avec PHP
6.15.5.PDO: PHP Data Objects
6.15.6.Association Objet-Relationnel (ORM) avec Doctrine
6.16.LDAP
6.17.Parser un document XML
6.18.Génération de documents PDF en PHP
6.19.Envoyer un mail
6.20.Créer un webmail avec IMAP
6.21.Droits utilisateurs: chmod 777
6.22.Localization (l10n) et Traduction
7.PHP pour le web
8.Internationalisation (i18n) et encodage en PHP
9.Créer un fichier de logs/traces
10.Déboguer une application PHP
11.Programmer en PHP en toute sécurité
12.Bibilothèque PEAR
13.Zend Framework 2 et 3
14.Installation de Zend Framework 2
15.Joomla
16.Composer
17.PHPUnit
18.PHPDocumentor
19.Mesure de temps d'exécution (benchmark) d'une fonction PHP
20.Exemples de scripts PHP
21.Erreurs fréquentes et les solutions
22.Archives
Version imprimable: imprimer