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.