Utiliser PDO avec PHP et MySQL

Classé dans : Web, Bases de données | Aucun commentaire

mercredi 17 juin 2015

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();