Page 1 sur 1

Classes de connections aux bdd

Posté : 14 nov. 2006, 16:09
par jojolapine
Bonjour à tous,
Je suis en plein "questionnement" sur ma manière de coder, C.A.D. utilisation de classes génériques, utilisation de template... etc.
Je souhaiterai savoir aujourd'hui, de quelle manière vous interagissez avec vos bases de données (que ce soit mysql ou autre),
en ce qui me concerne, à mes débuts, j'utilisais les fonctions mysql_***() à profusion, sans même utiliser de fonctions, puis j'ai essayer de me fabriquer une classe... mais bof, pas top, la gestion des erreurs n'éxiste pas, alors ne parlons pas de l'abstraction... :oops:
j'ai entrapperçu l'autre jour la classe PDO... qu'est-ce qu'elle vaut...?
bon en gros la question, est-ce que vous utilisez des classes que vous avez faites ? est-ce que vous utilisez PDO ? ou bien existe t il d'autres classes similaires ?
bref je suis tout ouïe!
à vos remarques!!!

Posté : 14 nov. 2006, 16:31
par zigz4g
Je vote pour PDO :)
PDO est vraiment pratique pour faire les connexions vers toutes bases de données (même les plus rétissantes comme humm.... sybase. arf c'est dit).

Mais comme le dis la documentation PDO n'est pas une abstraction. C'est pratique pour passer d'une base a une autre pour les connexions, il suffit juste de changer le DSN. Par contre faut refaire les requetes.

Je dirais qu'il faut prendre un des projets PEAR qui permet de faire de l'abstraction dans le cas ou les applis développées seront portées sur multi bdd.
PEAR MDB2 is a merge of the PEAR DB and Metabase php database abstraction layers.
Par contre dans la doc, il ne parle pas de PDO. Faut peut attendre encore un peu ou bien on trouve peut être déjà des abstractions qui utilisent PDO.

Pour PDO sous PHP5 bien sur, on utilise un singleton pour éviter de refaire des connexions en plus vers le serveur.

Posté : 14 nov. 2006, 17:56
par Ajoloca
Bonjour,

Je pense que concernant MySQL les débuts mysql_xxxx par tout, ensuite du mysqli_yyy, après des classes utilisant mysqli_yyy. Aujourd'hui PDO à 100%

Les + que je trouve dans cette classe:

1 - La rapidité par rapport à PEAR (ecrit en C et non en PHP)
2 - Sa simplicité d'utilisation. Comme déjà dit, pas besoin de toucher son code pour changer de SGBDR. Un fichier include avec les requetes adaptées au SGBDR et le PB est résolu. Même si ce PB n'est pas du à la classe mais aux differents SGBDR.
3 - Avec les requêtes préparées, certes plus lentes, plus de PB d'injection SQL
4 - Gestion des Exceptions
5 - Plus de souci avec les caractères d'échappement => la méthode 'quote()'
Il y on a d'autres comme la gestion des transactions (InnoDB) sous MySQL mais très utilisées avec d'autres SGBDR