Académique Documents
Professionnel Documents
Culture Documents
d’applications Web
PHP: PARTIE 3
ACCÈS AUX BASES DE DONNÉES
PDO: PHP DATA OBJECT
Traitement
des erreurs
Classes prédéfinies
PDO
Connexion PHP/Base de données
__construct()
exec(), prepare(), query()
errorCode(), errorInfo()
getAttributes(), setAttribute()
lastInsertId(), quote()
beginTransaction()
commit(), rollBack()
getAvailableDrivers()
Classes prédéfinies
PDOStatement
requête préparée, jeu de résultats
bindColumn(), bindParam(), bindValue(), closeCursor()
errorCode(), errorInfo()
fetch(), fetchAll(), fetchColumn(), fetchObject(),
setFetchMode(), nextRowset()
rowCount(), columnCount(), getColumnMeta()
getAttribute(), setAttribute()
execute()
debugDumpParams()
Connexion
unset($pdo) ;
Gestion des erreurs de connexion
Exemple
<?php
try {
$pdo = new PDO($dsn, $user, $pass) ;
//…Traitement
$pdo = null ;
}
?>
Exécution d'une requête
Exemple
<?php
try {
$pdo = new PDO ($dsn, $user, $pass) ;
$pdostat = $pdo->query("SELECT * FROM clients") ;
}
2 étapes:
Récupération des données ligne à ligne; Une ligne peut être :
un tableau indexé
un tableau associatif
un tableau mixte (par défaut)
un objet anonyme/d'une classe définie par l'utilisateur
Récupération des données d'une colonne
Exploitation des résultats d'une requête
Exemple
$pdo=new PDO ($dsn, $user, $pass) ;
$pdostat->setFetchMode(PDO::FETCH_ASSOC) ;
}
catch (Exception $e) {
echo "ERREUR : ".$e->getMessage() ;
}
Exploitation des résultats d'une requête
Exemple
$pdo=new PDO ($dsn, $user, $pass) ;
}
catch (Exception $e) {
echo "ERREUR : ".$e->getMessage() ;
}
Exploitation des résultats d'une requête
PDO::FETCH_ASSOC
retourner chaque ligne dans un tableau indexé par les noms des
colonnes ,comme elles sont retournées dans le jeu de résultats
correspondant.
PDO::FETCH_NUM
retourner chaque ligne dans un tableau indexé par le numéro des
colonnes comme elles sont retournées dans le jeu de résultats
correspondant, en commençant à 0.
PDO::FETCH_BOTH
retourner chaque ligne dans un tableau indexé par les noms des
colonnes ainsi que leurs numéros, comme elles sont retournées dans le
jeu de résultats correspondant, en commençant à 0.
PDO::FETCH_OBJ
retourner chaque ligne dans un objet avec les noms de propriétés
correspondant aux noms des colonnes comme elles sont retournées
dans le jeu de résultats
Requêtes insert/update/delete
Exemple
// Insertion d’un enregistrement
$req = "INSERT INTO auteur (login, nom, prenom)
VALUES ('Alfredo','Bie', 'Alfred')";
$retour = $pdo->exec($req );
Transactions :
Atomicité, Consistance, Isolation et Durabilité
BEGIN puis COMMIT ou ROLLBACK
Mode PDO par défaut :
Chaque requête est validée automatiquement
Syntaxe
PDO::beginTransaction()
PDO::commit()
PDO::rollBack()
Transactions
Exemple
<?php
$pdo = new PDO($sdn, $user, $pass);
$pdo->beginTransaction();