Tutoriel Vidéo PHP : L'objet PDO en PHP

Dans ce tutoriel vidéo vous découvrirez l'objet PDO. Cette objet vous permet de communiquer facilement avec plusieurs type de base de donnée et simplifie l'utilisation de fonctions avancées...

Télécharger la vidéo
(Réservé aux premiums)


Après avoir appris sur Internet quoi de plus normal que de partager à son tour ? Passionné par le web depuis un peu plus de 5 ans maintenant j'aime partager mes compétences et mes découvertes avec les personnes qui ont cette même passion pour le web : Vous.

Vous aimerez aussi

Les namespaces

Les namespaces
12m

Dans ce tutoriel vidéo vous apprendrez à utiliser les namespace ou...

API LastFM

API LastFM
35m

Dans ce tutoriel vidéo vous apprendrez comment utiliser l'API de...

38 commentaires
Ajouter un commentaire

iTACHi Il y a 16 jours Répondre

Exellent tuto , qui nous montre bien les équivalents du language mysql en PDO

Encore une fois , Merci ^^

Marilo Il y a 5 mois Répondre

Vraiment agréable ! j'avais des craintes concernant l'assimilation de la PDO mais grâce à ce tuto, tout s'éclaircit dans mon esprit ! Merci encore pour le partage des connaissances !

neoxeur Il y a 5 mois Répondre

$BD = new PDO('mysql:host=localhost';dbname=ta_base', 'root', '');

ça vas encore pas trop compliqué mais les updates j'ai encore du mal ...

Antoine Il y a 5 mois Répondre

Très bien ce tutoriel ! Il m'a fait apprendre comment utiliser PDO avec succès ! Je vous remercie mille fois :D

omar berrayti Il y a 5 mois Répondre

Mercii Pour le meilleur tuto :p

parmah Il y a 8 mois Répondre

Trop bien ce site

Roxeur76150 Il y a 8 mois Répondre

Ta aussi sa pour les error :

$req = ($sql) or die('Erreur SQL <br> Verifier votre table');

Mido Il y a 9 mois Répondre

Excellent tuto

funpro Il y a 9 mois Répondre

Merci pour c'est info

zvetlania Il y a 10 mois Répondre

Super tuto, merci beaucoup !

WinuX Il y a 11 mois Répondre

Pas mal le tuto, mais il manque juste ce que j'veux savoir xD
J'vais faire des recherches, mais si quelqu'un saurait me répondre.

Comment faire pour ajouter des class (pas sur du nom), faire par exemple :

$DB->fetch_assoc($requete);
$DB->num_rows($requete);

etc....

canonier Il y a 11 mois Répondre

Bonjour, excellent tuto !!
J'ai envi de dire comme d'hab' x)

Petite question concernant komodo edit:
J'ai remarqué que vous aviez le meme "probleme" que moi en ce qui concerne les accents. Je voulais savoir si il y avait une manipulation a faire où si il fallait repasser à chaque fois par le bon vieux notepad++ et se refaire tous les textes pour corriger les accents !?

(cf: tuto-vidéo un peu avant 4min)

bocaliste Il y a 11 mois Répondre

excellent , tutoriel très clair !

killman Il y a 1 an Répondre

excellent tutoriel. je souhaitais justement avoir une vue d'ensemble sur l'utilisation de l'objet PDO => parfait! Merci beaucoup.

cunimb Il y a 1 an Répondre

Très intéressant et très clair.
Bravo et Merci beaucoup

steph Il y a 1 an Répondre

Il ne manquerait pas un $DB->commit(); avant le $DB->rollback(); dans le dernier exemple ?

steph Il y a 1 an Répondre

Il ne manquerait pas un $DB->commit(); avant le $DB->callback(); dans le dernier exemple ?

Griffon974 Il y a 1 an Répondre

Il serait aussi possible de mettre en chaque fin de requête des "$req->closeCursor()" ^^".

Cordialement, Griffon974

Mister-Dydy7o Il y a 1 an Répondre

Bonjour Grafikart !
Merci pour ton super tuto , qui m'a permi de mieux m'y retrouver dans mon code !!
Cependant , j'aimerais savoir en PDO , quel est l'équivalent de mysql_num_rows ?
Merci d'avance !!

kawelo Il y a 8 mois - Répondre

Le "mysql_num_rows" de PDO est :
$nombre = $pdo->rowCount();

@ntonin Il y a 2 ans Répondre

Comme toujours un excellent tutoriel qui m'a permis de saisir l'utilité et la facilité de PDO pour les connexions et requêtes MySQL comme pour le repérage d'erreurs.
Juste une légère remarque : les noms de variables ne sont pas toujours explicite.
@ntonin
P.S : 18/20

mouflam Il y a 2 ans Répondre

bonour a tous encore une fois
j'ai essayé de me mettre à la PDO au lieu du prodédural, mais il m'affiche un message d'erreur (le code est correct ) il me dit que la methode fetch() de l'objet PDO n'existe pas alors que l'extension php_pdo_mysql est activée sur wamp.
ma question est la suivante : est ce qu'on doit activer l'extension autrement que par la petite icone de wamp sur ma barre inférieur PHP->PHP extensions ->php_pdo_mysql
merci d'avance

Rtransat Il y a 2 ans Répondre

Merci pour le tuto ^^

Par contre j'aimerais inclure la connexion à la base de donnée une seule fois sans àa chaque fois recréer l'objet PDO.

Avant sans PDO je faisais un fichier config.php avec mes identifiants serveur et je faisait un include de ce fichier pour utiliser mysql mais si je fais pareil avec PDO il me dit que l'objet PDO n'existe pas...

Mettre à chaque fois : (dans chaque fonction)
$bdd = new PDO('mysql:host=localhost;dbname=module', 'root', '');
C'est embêtant.

mouflam Il y a 2 ans Répondre

bonjour;
moi j'ai essayé de me mettre à la PDO au lieu du prodédural, mais il m'affiche un message d'erreur (le code est correct ) il me dit que la methode fetch() de l'objet PDO n'existe pas alors que l'extension php_pdo_mysql est activée sur wamp.
mais question est la suivante : est ce qu'on doit activer l'extension autrement que par la petite icone de wamp sur ma barre inférieur PHP->PHP extensions ->php_pdo_mysql
merci d'avance

iveinsomnia Il y a 2 ans Répondre

Chouette ! Vivement le tuto sur Vimeo (Daily me fais la gueule ¬¬)

KaKuZa` Il y a 2 ans Répondre

il serait plus juste de faire

die('Erreur : ' . $e->getMessage());

plutôt que echo(); non ?

OverSpeed Il y a 2 ans Répondre

Lioninho : C'est NetBeans PHP il me semble.
Wapaca : si tu a ça : $req = "SELECT * FROM tutoriels"; pour fermer la requete tu fais $req->CloseCursor(); je crois.

Wapaca Il y a 2 ans Répondre

J'ai une question :

Il ne faut pas fermer la connexion à la BDD avec un équivalent de mysql_close() en PDO ???

Eathan Il y a 2 ans - Répondre

Bonsoir =)

PDO s'occupe de lui même de fermer les connexions à la base de données en toute fin de script, automatiquement.

Bonne soirée.

lioninho Il y a 2 ans Répondre

Juste pour savoir, l'IDE que tu utilises. Merci! encore merci pour le Tuto!!!

arde Il y a 2 ans Répondre

bonjour,
super comme d'habitude tes tutos !
J'ai une question, si par exemple si on a besoin de recouperer des donnes de deux tables par exemple comment il faut faire??

Je dois faire deux requetes ou avec une seul c'est possible ?

Pour ilustrer ma question:
J'ai deux tables une avec mes rubriques principales de mon site et une deuxieme avec les sous rubriques, et du coup je veux recouperer les données de deux tables
d'abord pour ecrire mes rubriques et seconde pour ecrire toutes les sous rubriques de chaque rubrique du type :

RUBRIQUE
sous-rubrique
sous-rubrique
RUBRIQUE
sous-rubrique
sous-rubrique
sous-rubrique
RUBRIQUE
sous-rubrique
sous-rubrique

Je remercie par avance votre aide .

Tchao







OverSpeed Il y a 2 ans

A mon avis, il si pour une rubrique tu a une table, il suffit de faire un while. En gros ça donnerais ça : http://overspeed001.pastebin.com/itn66dkJ (je l'ai mis sur Pastebin pour pas avoir à scroller comme un fou).

arde Il y a 2 ans

Bonjour, je te remercie pour ton conseil , je vais tester au plus vite. a bientot

Eathan Il y a 2 ans

Bonsoir =)

PDO possède une autre de fonction qui s'occupe de rapatrier l'ensemble des résultats d'une requête, à savoir "fetchAll()".

Donc pour votre exemple, afin de limiter au maximum les accès à la base de données (optimisation des performances), il faut utiliser la syntaxe SQL "JOIN" ("LEFT JOIN" dans l'exemple qui suit), récupérer tous les résultats dans une variable et les traiter dans une boucle "foreach".

Dans votre cas, la requête pourrait ressembler à ceci : $sql="SELECT * FROM sousRubrique sr LEFT JOIN rubrique r ON r.idRubrique=sr.rubrique_id ORDER BY nomRubrique";. Puis, on exécute la requête : $req=$pdo->query($sql); et enfin, on récupère le tout dans une variable : $res=$req->fetchAll();.

Il reste alors à boucler sur $res grâce à : foreach($res as $ligne){...} et à traiter le tout pour avoir l'affichage désiré.

Note : la requête ci-dessus est à adapter selon vos nom de champs et, idéalement, il ne faudrait pas faire un "SELECT * ..." mais sélectionner les champs requis avec plus de précision (juste les noms des sous-rubrique et des rubriques, par exemple).

Bonne soirée!

Eathan Il y a 2 ans

Bonsoir =)

Merci pour cette initiation à PDO, c'est une base qui sera utile à pas mal de monde.

PDO à été intégré à PHP à partir de la version 5.1 (ce fut d'ailleurs la raison principale de la sortie de cette version mineure).

Ce tutoriel, comme les autres présents sur votre site est clair et bien conçu, mais je trouve dommage de ne pas avoir présenté la méthode "fetchAll()", sans doute la plus utilisée lorsqu'il y a de multiples résultats découlant d'une requête.

De plus, sans passer par la gestion des "Exception", il est relativement simple de vérifier si oui ou non une requête est correcte et si elle renvoie des résultats (le try/catch à la création de l'objet est cependant recommandé).

En effet, en prenant comme exemple un objet PDO "$pdo" et une requête sql "$sql" en faisant un simple "if($req=$pdo->query($sql)){...}else{print_r($pdo-errorInfo());}", on vérifie si la requête est correcte et on affiche directement l'erreur renvoyée par le driver.

De même, tenant compte de l'exemple précédent, un "if($res=$req->fetchAll()){...}else{echo 'Pas de résultat';}" permettra de savoir s'il oui ou non il y a des résultats (et agir en conséquence, sans passer par un "SELECT COUNT(*)..." superflu).

Dernière chose : quel dommage de ne pas avoir démontré la puissance de la petite méthode "$pdo->lastInsertId()" dont on a souvent tellement besoin. Cette dernière renvoie l'identifiant de la dernière ligne insérée.

Bonne soirée!

Eathan Il y a 2 ans - Répondre

Bonsoir =)

J'ai du faire une mauvaise manipulation et mon précédent message ne devrait pas se trouver ici, car ce n'était pas une réponse à un commentaire, mais bien un commentaire en soi.

Bonne soirée!

radah Il y a 2 ans Répondre

très intéressant comme tutoriel merci.

Pobourger Il y a 2 ans Répondre

Non, c'est NetBeans

Juice Il y a 2 ans Répondre

Super sympa comme tutoriel, merci.

Au fait, ton IDE, c'est toujours Komodo ? Parce que le thème à l'air bien sympa.

jbou43 Il y a 2 ans Répondre

Merci Merci pour ce tuto.

Corentin Il y a 2 ans Répondre

Jolie j'en avais juste besoin ...

Néandre Il y a 2 ans Répondre

Merci bien,
J'en connaissais bien peu en fait.

Site-waide.fr Il y a 2 ans Répondre

Cool , depuis le temps que c'est recommende pour l'utilisation de mysql ^^"

Wapaca Il y a 2 ans Répondre

Merci pour ce tuto

neirda33 Il y a 2 ans Répondre

Aaah ! Exactement ce que je voulais ! Merci !

Laisser un commentaire

Si vous avez une question il est conseillé d'utiliser le forum si vous voulez une réponse sûre.