====== Sqlite ======
--- source : http://www.finalclap.com/faq/170-php-sqlite-pdo
Installation
apt install php php-sqlite3
Création et connexion à une base de données SQLite
La première étape et de se connecter à la base :
setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // ERRMODE_WARNING | ERRMODE_EXCEPTION | ERRMODE_SILENT
} catch(Exception $e) {
echo "Impossible d'accéder à la base de données SQLite : ".$e->getMessage();
die();
}
PDO va créer le fichier sqlite automatiquement si il n'existe pas.
Créer une table à la volée
Maintenant qu'on est connecté, il faut créer une table. SQLite permet même d'utiliser des requêtes pour créer une table seulement si celle-ci n'existe pas, évitant ainsi d'avoir à faire le test :
query("CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
titre VARCHAR( 250 ),
created DATETIME
);");
Ecrire des données avec INSERT
Une fois la table crée, il faut insérer des données dedans avec une requête INSERT. Pour cela on utilise des requêtes préparées comme le ferait avec MySQL (ce qui permet d'éviter les failles d'injection SQL) :
prepare("INSERT INTO posts (titre, created) VALUES (:titre, :created)");
$result = $stmt->execute(array(
'titre' => "Lorem ipsum",
'created' => date("Y-m-d H:i:s")
));
Pour les requêtes UPDATE (mise à jour) c'est exactement la même syntaxe (seul $stmt change).
Lire des données avec SELECT
Voici un petit exemple qui permet de lire des données :
prepare("SELECT * FROM posts WHERE titre = :titre");
$stmt->execute(array('titre' => 'Lorem ipsum'));
$result = $stmt->fetchAll();
print_r($result);