SQLite - PHP : Guide pour Débutants

Salut là, futur superstar du codage ! Bienvenue dans notre incroyable aventure dans le monde de SQLite et PHP. Je suis ravi de vous guider alors que nous explorons ce sujet fascinant ensemble. Ne vous inquiétez pas si vous êtes nouveau dans le domaine de la programmation - nous allons avancer pas à pas, et avant que vous ne vous en rendiez compte, vous serez manipulateur de bases de données comme un pro !

SQLite - PHP

Installation

Avant de plonger dans le monde passionnant de SQLite et PHP, nous devons nous assurer que nous avons tous les outils nécessaires. C'est comme préparer pour une aventure culinaire - vous avez besoin de vos ingrédients et de vos ustensiles prêts !

Tout d'abord, vérifions si PHP est installé sur votre ordinateur. Ouvrez votre invite de commandes ou votre terminal et tapez :

php -v

Si vous voyez des informations sur la version, c'est génial ! Vous êtes prêt. Sinon, ne vous inquiétez pas - rendez-vous sur le site officiel de PHP (php.net) et suivez leur guide d'installation.

Ensuite, nous devons activer SQLite dans PHP. Habituellement, il est activé par défaut, mais vérifions quand même. Ouvrez votre fichier php.ini (vous pouvez trouver son emplacement en exécutant php --ini) et cherchez cette ligne :

extension=sqlite3

Si elle est commentée (a un point-virgule au début), supprimez le point-virgule pour l'activer.

Félicitations ! Vous venez de terminer la première étape de notre aventure. Maintenant, passons à la partie passionnante - utiliser SQLite avec PHP !

API de l'Interface PHP

PHP fournit un ensemble de fonctions pour interagir avec les bases de données SQLite. Pensez à ces fonctions comme à votre boîte à outils - chaque fonction est un outil différent qui vous aide à travailler avec votre base de données. Voici quelques-unes des plus importantes :

Fonction Description
sqlite3::open() Ouvre une base de données SQLite
sqlite3::exec() Exécute une requête SQL
sqlite3::query() Exécute une requête SQL et renvoie un jeu de résultats
sqlite3::close() Ferme la connexion à la base de données

Ne vous inquiétez pas si cela vous semble confus maintenant - nous verrons comment utiliser chacune de ces fonctions au fur et à mesure !

Connexion à la Base de Données

Maintenant que nous avons notre boîte à outils prête, connectons-nous à une base de données. C'est comme ouvrir la porte à votre pièce de stockage de données. Voici comment nous faisons :

<?php
$db = new SQLite3('myDatabase.db');
?>

Cette ligne simple fait beaucoup ! Décomposons-la :

  • Nous créons un nouvel objet SQLite3 et le stockons dans la variable $db.
  • 'myDatabase.db' est le nom de notre fichier de base de données. Si il n'existe pas, SQLite le créera pour nous.

N'oubliez pas de toujours entourer vos opérations de base de données de blocs try-catch pour gérer les erreurs avec grâce. Voici une version plus robuste :

<?php
try {
$db = new SQLite3('myDatabase.db');
echo "Connecté à la base de données avec succès !";
} catch (Exception $e) {
echo "Impossible de se connecter à la base de données : " . $e->getMessage();
}
?>

Création d'une Table

Maintenant que nous sommes connectés, créons une table pour stocker des données. Imaginez que vous gérez une petite bibliothèque et que vous souhaitez suivre vos livres. Voici comment vous pourriez créer une table 'books' :

<?php
$db = new SQLite3('library.db');

$query = "CREATE TABLE IF NOT EXISTS books (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
author TEXT NOT NULL,
published_year INTEGER
)";

if ($db->exec($query)) {
echo "Table créée avec succès !";
} else {
echo "Erreur lors de la création de la table : " . $db->lastErrorMsg();
}
?>

Décomposons cela :

  • Nous utilisons CREATE TABLE IF NOT EXISTS pour éviter des erreurs si la table existe déjà.
  • Nous définissons quatre colonnes : id, title, author, et published_year.
  • L'id est notre clé primaire et s'incrémentera automatiquement.
  • Nous utilisons $db->exec() pour exécuter notre requête SQL.

Opération INSERT

Super ! Nous avons une table. Maintenant, ajoutons quelques livres à notre bibliothèque :

<?php
$db = new SQLite3('library.db');

<title> = "Gatsby le Magnifique";
$author = "F. Scott Fitzgerald";
$year = 1925;

$query = "INSERT INTO books (title, author, published_year)
VALUES (:title, :author, :year)";

$stmt = $db->prepare($query);
$stmt->bindValue(':title', $title, SQLITE3_TEXT);
$stmt->bindValue(':author', $author, SQLITE3_TEXT);
$stmt->bindValue(':year', $year, SQLITE3_INTEGER);

if ($stmt->execute()) {
echo "Livre ajouté avec succès !";
} else {
echo "Erreur lors de l'ajout du livre : " . $db->lastErrorMsg();
}
?>

Cela peut sembler compliqué, mais c'est en réalité assez simple :

  • Nous utilisons des requêtes préparées (:title, :author, :year) pour prévenir les attaques par injection SQL.
  • Nous préparons notre requête, puis lier chaque placeholder.
  • Enfin, nous exécutons l'instruction.

Opération SELECT

Maintenant, récupérons nos livres de la base de données :

<?php
$db = new SQLite3('library.db');

$query = "SELECT * FROM books";
$result = $db->query($query);

while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
echo "Titre : " . $row['title'] . "<br>";
echo "Auteur : " . $row['author'] . "<br>";
echo "Publié : " . $row['published_year'] . "<br><br>";
}
?>

Voici ce qui se passe :

  • Nous utilisons $db->query() pour exécuter notre requête SELECT.
  • Nous utilisons une boucle while avec fetchArray() pour récupérer chaque ligne.
  • SQLITE3_ASSOC indique à fetchArray() de renvoyer un tableau associatif.

Opération UPDATE

Oups ! Nous avons fait une erreur. "Gatsby le Magnifique" a été publié en 1925, pas en 1924. Mettons à jour notre base de données :

<?php
$db = new SQLite3('library.db');

$query = "UPDATE books SET published_year = :year WHERE title = :title";

$stmt = $db->prepare($query);
$stmt->bindValue(':year', 1925, SQLITE3_INTEGER);
$stmt->bindValue(':title', 'Gatsby le Magnifique', SQLITE3_TEXT);

if ($stmt->execute()) {
echo "Livre mis à jour avec succès !";
} else {
echo "Erreur lors de la mise à jour du livre : " . $db->lastErrorMsg();
}
?>

Cela est similaire à notre opération INSERT, mais nous utilisons la commande SQL UPDATE à la place.

Opération DELETE

Enfin, apprenons comment supprimer un livre de notre base de données :

<?php
$db = new SQLite3('library.db');

$query = "DELETE FROM books WHERE title = :title";

$stmt = $db->prepare($query);
$stmt->bindValue(':title', 'Gatsby le Magnifique', SQLITE3_TEXT);

if ($stmt->execute()) {
echo "Livre supprimé avec succès !";
} else {
echo "Erreur lors de la suppression du livre : " . $db->lastErrorMsg();
}
?>

Et voilà ! Nous avons couvert toutes les opérations de base pour travailler avec SQLite en PHP. Souvenez-vous, la pratique rend parfait. Essayez de créer vos propres projets de base de données, peut-être une liste de tâches ou un livre de recettes. Plus vous jouerez avec ces concepts, plus vous deviendrez à l'aise.

J'espère que vous avez apprécié cette aventure autant que moi. Continuez à coder, continuez à apprendre, et surtout, amusez-vous ! Jusqu'à la prochaine fois, bon codage et amusez-vous avec les bases de données !

Credits: Image by storyset