0% ont trouvé ce document utile (0 vote)
202 vues9 pages

Optimiser PHP avec PDO pour MySQL

Ce document décrit l'interface PHP-MySQL PDO. Il explique comment se connecter à une base de données, exécuter des requêtes préparées et gérer les transactions avec PDO.

Transféré par

ĶäďiřØo Ktr
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
202 vues9 pages

Optimiser PHP avec PDO pour MySQL

Ce document décrit l'interface PHP-MySQL PDO. Il explique comment se connecter à une base de données, exécuter des requêtes préparées et gérer les transactions avec PDO.

Transféré par

ĶäďiřØo Ktr
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Interface PHP-MySQL

L’interface PDO
Introduction

 L’utilisation de l’interface mysql est devenue obsolète (déconseillée) dans les


nouvelles versions de PHP. Il est donc préférable d’utiliser l’interface PDO pour
vos connexions à un SGBD à partir de PHP.
 La connexion à la base de données en utilisant l’interface PDO est devenue plus
facile. La connexion, l’authentification et la sélection d’une base de données
sont réalisées en une seule instruction :
 $db = new PDO('mysql:host=localhost;dbname=test', 'username',
'password');
 Pour se connecter à une base de données Oracle par exemple, il suffit de faire :
 $db = new PDO('oci:dbname=testdb;charset=utf8', 'username',
'password');
Requête avec PDO
 Pour exécuter une requête et traiter les erreurs possibles :
try {
$stmt=$db->query('SELECT * FROM maTable'); //requête SQL
$Result=$stmt->fetchAll(PDO::FETCH_ASSOC); //Récupération des
résultats
$row_count = $stmt->rowCount();//nombre de lignes affectées
}
catch(PDOException $ex) {
echo "Une erreur est survenue!"; //message pour l'utilisateur
some_logging_function($ex->getMessage());//message du Serveur
}
Les Requêtes Préparées
 Une requête préparée est une requête précompilée qui nécessite un ou
plusieurs paramètres pour s’exécuter.
 Préparer les requêtes est particulièrement utile si on veut exécuter une
requête plusieurs fois avec des paramètres différents à chaque fois.
 Il existe différentes façons de préparer une requête avec l’interface PDO.
 PDO accepte deux types de marqueurs de paramètres :
➢ Les paramètres nommés avec :nom_du_param
➢ Le point d’interrogation ?

 Il faut choisir l’un des deux paramètres car ils ne peuvent pas être mélangés.
Les Requêtes Préparées
1er Cas
$Age = 36;
$Prenom = 'Rachid';
/*** préparer la requête SQL ***/
$stmt = $db->prepare("SELECT * FROM Employers WHERE Age =
:e_age AND prenom = :e_prenom");
/*** lier les paramètres ***/
$stmt->bindParam(':e_age', $Age, PDO::PARAM_INT);
$stmt->bindParam(':e_prenom', $Prenom, PDO::PARAM_STR, 5);
/*** exécuter la requête préparée ***/
$stmt->execute();
/*** récupérer les résultats ***/
$result = $stmt->fetchAll();
Les Requêtes Préparées
2ème Cas
$Age = 36;
$Prenom = 'Rachid';
/*** préparer la requête SQL ***/
$stmt = $db->prepare("SELECT * FROM Employees WHERE Age = ?
AND prenom = ?");
/*** lier les paramètres ***/
$stmt->bindParam(1, $Age);
$stmt->bindParam(2, $Prenom);
/*** exécuter la requête préparée ***/
$stmt->execute();
/*** récupérer les résultats ***/
$result = $stmt->fetchAll();
Les Requêtes Préparées
Comparaison
$Age = 36;
$Prenom = 'Rachid';
/*** préparer la requête SQL ***/
$stmt = $db->prepare("SELECT *
FROM Employers WHERE Age = :e_age $stmt = $db->prepare("SELECT *
AND prenom = :e_prenom"); FROM Employees WHERE Age = ? AND
/*** lier les paramètres ***/ prenom = ?");
$stmt->bindParam(':e_age', $Age, /*** lier les paramètres ***/
PDO::PARAM_INT); $stmt->bindParam(1, $Age);
$stmt->bindParam(':e_prenom', $stmt->bindParam(2, $Prenom);
$Prenom, PDO::PARAM_STR, 5);
/*** exécuter la requête préparée ***/
$stmt->execute();
/*** récupérer les résultats ***/
$result = $stmt->fetchAll();
Les Requêtes Préparées
Exemple
 Voici un exemple avec la base catalog.
Les Transactions
 L’interface PDO permet de gérer les transactions SQL.
 Pour ce faire, l’objet PDO contient des fonctions pour lancer, valider et annuler
une transaction.
try {
/*** lancer la transaction ***/
$db->beginTransaction();
/* Requêtes SQL
- SELECT/INSERT/UPDATE/... */
$db->commit(); // valider la transaction **
}
catch(PDOException $e) {
$db->rollback(); // annuler la transaction en cas d'échec
echo $e->getMessage(); // message d'erreur
}

Vous aimerez peut-être aussi