PHP : Exemples avec PDO pour interroger une base MariaDB
Table des matières
Dans cet article, je liste des petits bouts de fonctions pour interroger une base de données MariaDB avec PDO en PHP.
Ce mémo est là pour trouver rapidement ce dont j'ai besoin.
Le connecteur sera stocké dans $pdo et mes requêtes seront $stmt (statement)
Pour la connexion, je définis mes variables et j'ouvre la connexion avec la chaîne suivante.
Je force l'UTF8 juste après :
En fin de page, pour fermer la connexion, on peut définir la variable $pdo à null :
Pour sélectionner des données :
Dans cet exemple, c'est une requête préparée avec un id passé en paramètre. Cette méthode est sûre car elle évite les injections SQL.
Ensuite, on traite les données avec un foreach (exemple avec affichage des colonnes id :
Une requête INSERT est beaucoup plus simple (exemple avec une requête préparée et 2 variables passées) :
Une requête UPDATE est aussi simple qu'un INSERT :
Ici, on a directement passé $impots car c'est un entier calculé dans une page avant donc sans risque d'injection.
Je n'ai pas d'exemples dans mon code, mais c'est pareil que l'UPDATE et le INSERT :-)
Après exécuté un SELECT, on peut connaitre le nombre de lignes avec :
Introduction
Dans cet article, je liste des petits bouts de fonctions pour interroger une base de données MariaDB avec PDO en PHP.
Ce mémo est là pour trouver rapidement ce dont j'ai besoin.
Le connecteur sera stocké dans $pdo et mes requêtes seront $stmt (statement)
Connexion et Déconnexion
Pour la connexion, je définis mes variables et j'ouvre la connexion avec la chaîne suivante.
Je force l'UTF8 juste après :
Code PHP :
<?php // Database settings $db="base"; $dbhost="localhost"; $dbport=3306; $dbuser="user"; $dbpasswd="pass"; $pdo = new PDO('mysql:host='.$dbhost.';port='.$dbport.';dbname='.$db.'', $dbuser, $dbpasswd); $pdo->exec("SET CHARACTER SET utf8"); ?>
En fin de page, pour fermer la connexion, on peut définir la variable $pdo à null :
Code PHP :
<?php $pdo = null; ?>
Requêtes de base
SELECT
Pour sélectionner des données :
Code PHP :
$stmt = $pdo->prepare("SELECT * FROM societe WHERE id=?"); $stmt->bindParam(1,$id); $stmt->execute();
Dans cet exemple, c'est une requête préparée avec un id passé en paramètre. Cette méthode est sûre car elle évite les injections SQL.
Ensuite, on traite les données avec un foreach (exemple avec affichage des colonnes id :
Code PHP :
$res = $stmt->fetchAll(); foreach ( $res as $row ) { echo $row['id']; }
INSERT
Une requête INSERT est beaucoup plus simple (exemple avec une requête préparée et 2 variables passées) :
Code PHP :
$stmt=$pdo->prepare("INSERT INTO journal(date, heure, message, fk_societe) VALUES (NOW(), NOW(), ?, ?);"); $stmt->bindParam(1,$message); $stmt->bindParam(2,$sid); $stmt->execute();
UPDATE
Une requête UPDATE est aussi simple qu'un INSERT :
Code PHP :
$stmt=$pdo->prepare("UPDATE compta SET impot=$impots WHERE fk_societe=?"); $stmt->bindParam(1,$sid); $stmt->execute();
Ici, on a directement passé $impots car c'est un entier calculé dans une page avant donc sans risque d'injection.
DELETE
Je n'ai pas d'exemples dans mon code, mais c'est pareil que l'UPDATE et le INSERT :-)
Diverses astuces
Compter les lignes de la requête
Après exécuté un SELECT, on peut connaitre le nombre de lignes avec :
Code PHP :
$nb=$stmt->rowCount();