Petit guide rapide de l'utilisation de PDO avec PHP et MySQL, en remplacement des traditionnelles (et obsolètes) méthodes mysql_*
Se connecter à la base de données
define('DB_HOST', '127.0.0.1'); define('DB_BDD', 'test'); define('DB_USER', 'myuser'); define('DB_PASS', 'mypass'); // Connexion try { $db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_BDD.';charset=utf8', DB_USER, DB_PASS); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); }
Executer des commandes simples
$sql = "TRUNCATE unetable"; $stmt = $db->exec($sql); $sql = 'SELECT * FROM test WHERE id = 1'; $stmt = $db->query($sql); $row = $stmt->fetch(); if($row == NULL){ echo 'Aucun enregistrement trouvé'; } else { print_r($row); }
Récupérer plusieurs enregistrements
$sql = 'SELECT * FROM test'; $stmt = $db->query($sql); $result = $stmt->fetchAll(); foreach($result as $row){ print_r($row); }
Requête paramétrée
$id = 10; $sql = 'SELECT * FROM test WHERE id = :id'; $stmt = $db->prepare($sql); $stmt->bindValue(':id', $id, PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(); if($row == NULL){ echo 'Aucun enregistrement trouvé'; } else { print_r($row); }
Les types de paramètres possibles sont définis ici : http://php.net/manual/fr/pdo.constants.php
Insérer ou modifier des données
$stmt = $dbh->prepare("INSERT INTO unetable (name, value) VALUES (:name, :value)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':value', $value); $stmt->execute(); $lineId = $db->lastInsertId();