PDO est juste une classe d'abstraction qui te permet de changer de base de donnée sans changer bcp de une ligne de code...
Mais de 1 c'est faux (Certaines requetes, ne fonctionne pas entre les différent serveur SQL, suffit de regarder mysql 4 et mysql 5...)
et de 2 on change rarement voir jamais de base de donnée (en tous cas pas sans changer de technologie dans mon cas)
Un petit lien vers la doc FR de l'extension PDO : http://fr2.php.net/manual/fr/intro.pdo.php
Donc, en gros dans ton code tu fais un truc du genre :
Mais de 1 c'est faux (Certaines requetes, ne fonctionne pas entre les différent serveur SQL, suffit de regarder mysql 4 et mysql 5...)
et de 2 on change rarement voir jamais de base de donnée (en tous cas pas sans changer de technologie dans mon cas)
Un petit lien vers la doc FR de l'extension PDO : http://fr2.php.net/manual/fr/intro.pdo.php
Donc, en gros dans ton code tu fais un truc du genre :
Code PHP :
<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$dbh->query('Select * FROM bidule;');
?>
Et si tu veux changer de BDD suffit de changer la chaine de connection par un truc du genre :
'mssql:host=localhost;dbname=test' pour microsoft SQL server... (pas besoin de changer l'appel à la méthode query()...)
Donc si ton appli est bien architecturé, t'as juste une chaine à changé.
Mais comme je le dis plus haut implicitement, le langage SQL a été "modifié" par les personnes qui les implémentent, c'est un peu comme les différentes versions d'HTML strict/oupas.
Oracle et pgsql sont plus stricte que MySQL, donc toute les requetes de jointures peuvent ne pas fonctionner si tu changes de base.
Pour terminer, non ce n'est pas un DAO, mais tu peux l'utiliser avec un DAO. Comme tu pourrais utiliser Mysqli ou Mysql.(Avec le pattern singleton ^^)