FLYDATABASE: CLASSE DE GESTION DES TRANSACTIONS BDD
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 décembre 2010
-
8 mai 2007 à 13:35
Knolan
Messages postés79Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention18 juin 2007
-
26 mai 2007 à 20:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Knolan
Messages postés79Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention18 juin 2007 26 mai 2007 à 20:06
Bon voila j'ai mis a jour la classe, je sais pas si des gens suivent l'évolution de ce code... mais au cas ou :)
Voila
Knolan
Messages postés79Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention18 juin 2007 13 mai 2007 à 13:48
Des que je sors la tete de mes partiels je me remet dessus, et merci pour tous les commentaires :)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 13 mai 2007 à 08:54
Tien, pour une fois que je suis d'accord avec tout le monde ici!
En effet, l'idée d'intégrer les transactions est très bonne (preuve en est : je le fais depuis peu ;-)); mais en effet aussi, ta classe est très incomplète. Et puis ça manque d'abstraction. Et effectivement, le bench intégré à la méthode effectuant les requêtes, bof...je préfère utiliser une classe tierce pour ça, ou au pire, proposer une méthode de bench dans la classe.
Bref. Pour PDO, devriez quand même l'essayer, les kadors pas encore convaincus... ;-) Vous pourriez être très surpris. PDO a plus d'un tour intéressant dans son sac. Malgré ses défauts (faut le bon driver...! Sans quoi, on est limité).
Allez, encore un peu de courage pour sortir la classe d'abstraction de bdd parfaite (je viens peu en ce moment, mais j'ai vu que vous aviez mlis un sacré coup de collier sur les classes d'abstraction de bdd, ces temps-ci!) : vraiment abstraite...vraiment générique...gérant les exceptions...basées sur les itérateurs évidemment...gérant les transactions...les multitons...les caches...et légère, tant qu'à faire ;-)
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 10 mai 2007 à 01:30
FHX>>>>>Apache 5 ? Non.. Apache 2 et PHP5 :)
Ouups, désolé pour l'erreur, c'est effectivement php5 et non pas apache5 (mon clavier à fourché)...
Morpheus57>>>>mais je sais pas si t'as regardé le code de Knolan -> c'est du PHP5 :-)
j'avais vu :) mais son code, en l'état est "relativement" facile à modifier pour être portable sur du php4. Tandisque s'il avait été codé avec PDO, cela aurait été niet, nada, slitch...
Et pis c'est si bon de reinventer la roue, même si elle existe déja... ;)
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 9 mai 2007 à 14:31
bah soit tu stocke le résultat en interne... la méthode query() ne renvoyant plus qu'un booléen... soit tu renvois la ressource du résultat après l'exécution de ta requête ce qui reste le mieux à faire si tu veux pouvoir traiter plusieurs résultats simultanément... ... .. .
@ tchaOo°
Knolan
Messages postés79Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention18 juin 2007 9 mai 2007 à 13:53
Merci pour toutes ces remarques :)
Je comptais justement intégrer par la suite des mysql_fetch_* & Co mais en fait je savais pas trop comment m'y prendre, pour que ce soit pratique.
Je vais y réfléchir et je posterai les modifications rapidement.
Merci encore
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 9 mai 2007 à 11:51
Moi perso concernant mysql je ne vois pas l'intérêt d'encapsuler les fonctions native de php si c'est juste pour y ajouter un timer lors de l'exécution de la requête... s'il faut développer un classe SGDB autant faire une classe d'abstraction sinon c'est de la perte de performance pour rien... mieux vaut faire du procédural dans ce cas là... d'autant plus que dans cette classe il n'y a pas de fonctions de traitement des résultats (mysql_fetch_* & Co) donc tu est obligé de repasser par le procédural pour faire le traitement ce qui est brouillon comme façon de faire... par contre l'idée d'y intégrer les transaction est plutôt bonne... ça manque à la plupart des classes SGDB... .. .
@ tchaOo°
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 9 mai 2007 à 11:02
Personnellement j'utilise PDO mais le problème de PDO c'est qu'elle n'est pas installée sur toutes les configs d'hébergement (mutualisés comme dédiés par défaut). C'est bien dommage.
Quant à ta classe, ce n'est pas si mal mais il manque beaucoup de choses. Par exemple :
- Comptage du nombre de résultats
- Comptage du nombre de lignes affectées
- Dernier ID auto incrémenté enregistré
- Possibilité d'extraire les résultats lignes à lignes ou tous d'un coup dans un tableau
- ...
++
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 décembre 2010 9 mai 2007 à 09:32
Je voulais simplement tenir au courant notre cher Knolan que PDO existait et pourquoi pas l'utiliser. Maintenant effectivement chacun fait comme il veut mais alors pourquoi poster des sources ? Je pensais que c'était pour avoir des l'opinion des autres développeurs.
A mon avis PDO est très bien fait et mérite au moins qu'on s'y intéresse afin de ne pas passer à côté de quelques chose d'important.
De plus en ce qui concerne la remarque de Masternico, effectivement il faut PHP5 mais je sais pas si t'as regardé le code de Knolan -> c'est du PHP5 :-)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 8 mai 2007 à 23:11
Apache 5 ?
Non.. Apache 2 et PHP5 :)
masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 8 mai 2007 à 22:02
"PDO fait ça très bien et apporte l'abstraction de la base de donnée"
Encore faut-il avoir un serveur avec apache 5.0 minimum... sinon, pas de PDO... donc on est bien obligé de créer son propre moteur de connexion avec la base de donnée.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 8 mai 2007 à 17:45
"PDO fait ça très bien et apporte l'abstraction de la base de donnée"
Chacun fait comme il veut :)
Depuis PHP 5.2.0, il a bien une classe DateTime qui existe, et pourtant j'utilise toujours la mienne parce que je la trouve plus soft/complète.
Moi pareil, PDO ne me sert à rien. J'ai ma propre classe et ca me suffit amplement :)
Knolan
Messages postés79Date d'inscriptiondimanche 9 février 2003StatutMembreDernière intervention18 juin 2007 8 mai 2007 à 15:09
Salut,
Merci pour le commentaire, a ta remarque je répondrais 4 choses:
- Je ne connais pas PDO
- J'ai fait cette classe pour apprendre à utiliser les classes et les exceptions en PHP
- Je préfère avoir une ptite classe qui se limite a ce que je veux plutot qu'un gros machin sur lequelle j'ai aucune prise
- J'ai dit en préambule que l'abstraction de la base de données ne m'interessais pas
Merci quand même
cs_morpheus57
Messages postés121Date d'inscriptionvendredi 31 mars 2006StatutMembreDernière intervention30 décembre 2010 8 mai 2007 à 13:35
Salut,
Je ne comprend pas trop l'intérêt de la chose : PDO fait ça très bien et apporte l'abstraction de la base de donnée
26 mai 2007 à 20:06
Voila
13 mai 2007 à 13:48
13 mai 2007 à 08:54
En effet, l'idée d'intégrer les transactions est très bonne (preuve en est : je le fais depuis peu ;-)); mais en effet aussi, ta classe est très incomplète. Et puis ça manque d'abstraction. Et effectivement, le bench intégré à la méthode effectuant les requêtes, bof...je préfère utiliser une classe tierce pour ça, ou au pire, proposer une méthode de bench dans la classe.
Bref. Pour PDO, devriez quand même l'essayer, les kadors pas encore convaincus... ;-) Vous pourriez être très surpris. PDO a plus d'un tour intéressant dans son sac. Malgré ses défauts (faut le bon driver...! Sans quoi, on est limité).
Allez, encore un peu de courage pour sortir la classe d'abstraction de bdd parfaite (je viens peu en ce moment, mais j'ai vu que vous aviez mlis un sacré coup de collier sur les classes d'abstraction de bdd, ces temps-ci!) : vraiment abstraite...vraiment générique...gérant les exceptions...basées sur les itérateurs évidemment...gérant les transactions...les multitons...les caches...et légère, tant qu'à faire ;-)
10 mai 2007 à 01:30
Ouups, désolé pour l'erreur, c'est effectivement php5 et non pas apache5 (mon clavier à fourché)...
Morpheus57>>>>mais je sais pas si t'as regardé le code de Knolan -> c'est du PHP5 :-)
j'avais vu :) mais son code, en l'état est "relativement" facile à modifier pour être portable sur du php4. Tandisque s'il avait été codé avec PDO, cela aurait été niet, nada, slitch...
Et pis c'est si bon de reinventer la roue, même si elle existe déja... ;)
(n'ayant pas php5, donc pas PDO, je me suis créé une petite classe perso que j'utilise dans mes scripts: http://www.phpcs.com/code.aspx?ID=42649)
Voili voilou
9 mai 2007 à 14:31
@ tchaOo°
9 mai 2007 à 13:53
Je comptais justement intégrer par la suite des mysql_fetch_* & Co mais en fait je savais pas trop comment m'y prendre, pour que ce soit pratique.
Je vais y réfléchir et je posterai les modifications rapidement.
Merci encore
9 mai 2007 à 11:51
@ tchaOo°
9 mai 2007 à 11:02
Quant à ta classe, ce n'est pas si mal mais il manque beaucoup de choses. Par exemple :
- Comptage du nombre de résultats
- Comptage du nombre de lignes affectées
- Dernier ID auto incrémenté enregistré
- Possibilité d'extraire les résultats lignes à lignes ou tous d'un coup dans un tableau
- ...
++
9 mai 2007 à 09:32
A mon avis PDO est très bien fait et mérite au moins qu'on s'y intéresse afin de ne pas passer à côté de quelques chose d'important.
De plus en ce qui concerne la remarque de Masternico, effectivement il faut PHP5 mais je sais pas si t'as regardé le code de Knolan -> c'est du PHP5 :-)
8 mai 2007 à 23:11
Non.. Apache 2 et PHP5 :)
8 mai 2007 à 22:02
Encore faut-il avoir un serveur avec apache 5.0 minimum... sinon, pas de PDO... donc on est bien obligé de créer son propre moteur de connexion avec la base de donnée.
8 mai 2007 à 17:45
Chacun fait comme il veut :)
Depuis PHP 5.2.0, il a bien une classe DateTime qui existe, et pourtant j'utilise toujours la mienne parce que je la trouve plus soft/complète.
Moi pareil, PDO ne me sert à rien. J'ai ma propre classe et ca me suffit amplement :)
8 mai 2007 à 15:09
Merci pour le commentaire, a ta remarque je répondrais 4 choses:
- Je ne connais pas PDO
- J'ai fait cette classe pour apprendre à utiliser les classes et les exceptions en PHP
- Je préfère avoir une ptite classe qui se limite a ce que je veux plutot qu'un gros machin sur lequelle j'ai aucune prise
- J'ai dit en préambule que l'abstraction de la base de données ne m'interessais pas
Merci quand même
8 mai 2007 à 13:35
Je ne comprend pas trop l'intérêt de la chose : PDO fait ça très bien et apporte l'abstraction de la base de donnée