PDO : PHP Data Object

Transcription

PDO : PHP Data Object
PDO : PHP Data Object
Définition :
L'extension PHP Data Objects (PDO) définit une classe pour accéder à une
base de données depuis PHP.
PDO supporte plusieurs types de SGBD dont MySQL, Oracle, PSQL, SQLITE, ...
PDO est fournit avec PHP 5.1 et est disponible en tant qu'extension PECL
pour PHP 5.0.
Références :
http://fr.php.net/pdo
http://phpro.org/tutorials/Introduction-to-PHP-PDO.html
Connexion à une BD MySQL :
Les connexions sont établies en créant des instances de la classe de base de
PDO.
<?php
$user='monuser';
$pass='monpasswd';
$dsn= 'mysql:host=localhost;port=3306;dbname=test';
$db = new PDO($dsn, $user, $pass);
?>
Gestion des erreurs :
PDO::ERRMODE_SILENT : définit simplement le code erreur (option par défaut)
PDO::ERRMODE_WARNING : émet un message de niveau E_WARNING
PDO::ERRMODE_EXCEPTION : renvoie une exception avec code et
information sur l'erreur
<?php
....
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
?>
Exécution d'une requête :
<?php
$requete = 'SELECT * FROM ..........' ;
$db->query($requete);
?>
Récupérer une ligne de résultat d'un requête :
La méthode Fetch possède 3 paramètres optionnels :
– $fetch_style : contrôle comment la prochaine ligne sera retournée
– $cursor_orientation : détermine quelle ligne sera retournée à l'appelant
– $cursor_offset : spécifie le numéro absolu de la ligne dans le jeu de
résultats qui doit être récupérée.
Valeurs possibles pour $fetch_style :
•
PDO::FETCH_ASSOC: retourne un tableau indexé par le nom de la
colonne comme retourné dans le jeu de résultats
•
PDO_FETCH_BOTH (défaut): retourne un tableau indexé par les noms de
colonnes mais aussi par les numéros de colonnes (commençant à l'indice
0), comme retournés dans le jeu de résultats
•
PDO::FETCH_INTO: met à jour une instance existante de la classe
demandée, liant les colonnes du jeu de résultats aux noms des propriétés
de la classe
•
PDO_FETCH_OBJ: retourne un objet anonyme avec les noms de propriétés
qui correspondent aux noms des colonnes retournés dans le jeu de
résultats
•
etc ...
<?php
$sth=$db->query($requete);
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
?>
Récupérer un tableau contenant toutes les lignes de résultats d'une requête:
La méthode FetchAll possède 2 paramètres optionnels :
– $fetch_style : contrôle comment la chaque ligne sera retournée
– $column_index : retourne la colonne indiquée si la valeur de fetch_style
est PDO::FETCH_COLUMN.