begin process at 2010 02 10 14:33:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > FLYDATABASE: CLASSE DE GESTION DES TRANSACTIONS BDD

FLYDATABASE: CLASSE DE GESTION DES TRANSACTIONS BDD


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Classé sous :transactions, exception, commit, itérateurs, factory Niveau :Initié Date de création :08/05/2007 Date de mise à jour :25/05/2007 22:42:44 Vu / téléchargé :5 098 / 317

Auteur : Knolan

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Hi Everybody !

Je viens aujourd'hui vous présenter une chtite classe de gestion des transactions BDD.
Je fais ca sans prétention et je me tourne vers vous justement pour avoir le plus de critiques (constructives si possibles ^^) sur ma classe afin que je puisse l'améliorer :)

Niveau fonctionnalités, elle fait tout le basique d'une classe BDD avec en plus la gestion des transactions (COMMIT, ROLLBACK) (c'est la raison pour laquelle je l'ai écrite d'ailleurs) et une ptite gestion d'exceptions (c'est la toute première fois que j'utilise les exceptions en php alors soyez indulgent =P).

Je tiens à préciser que je ne souhaite pas abstraire ma classe et qu'elle restera uniquement sur MySQL.

Merci d'avance pour toutes les remarques, je tacherai de mettre à jour régulièrement en fonction des commentaires :)

PS: je sais qu'une classe de connexion BDD a été posté il y a peu, je sais que ca peut paraitre redondant mais j'ai besoin de commentaires
PPS: je me suis un peu inspiré de ladite classe pour certain ptit truc ^^



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 mai 2007 00:33:06 :
... euh mise à jour des mots clefs :P
25 mai 2007 22:42:45 :
Voila, j'ai pas mal bossé dessus, j'ai bcp lu sur le net, je me suis pas mal arraché les cheveux sur les itérateurs et autre factory d'objets. Le code n'a plus rien a voir avec l'ancienne version, merci de me dire ce que vous en pensez =) Je sais on pourrait dire que ca ressemble à bcp de classe déjà vu, mais j'essaye de simplifier pour que ca réponde à ma problématique alors tapez pas svp :) Aussi j'oubliais, j'ai commencé à mettre en place une pseudo abstraction BDD... oui je sais au début je disais que je voulais pas ! Mais comme ca si jamais ca plait à quelqu'un il pourrait ajouter son interface pour la BDD qu'il souhaite ^^ Le tout est agrémenté de 4 exemples, le premier servant essentiellement à mettre en place les données de test, alors ne vous inquietez pas si jamais c'est un peu longuet.... :(

 Sources de la même categorie

Source avec Zip EXTEND MYSQLI par petibras
Source avec Zip CLASSE DE COMMANDES PEAR DB par pascalmintrosse
Source avec Zip AFFICHER LE RÉSULTAT D'UNE REQUÊTE SQL SUR PLUSIEURS PAGE par karimmass
Source avec Zip SQLDIFF : MIGRATION, VERSIONNING ET SYNCHRONISATION DE LA ST... par aKheNathOn
Source avec Zip RÉSEAU AMICAL par Fidji56

 Sources en rapport avec celle ci

Source avec Zip POO - FACTORY CLASS par Waredan
Source avec Zip MOTEUR DE TEMPLATE par FaustXVI
[PHP 5.1] CLASS STRING : NOUVEL EXEMPLE SUR LA SPL par malalam
Source avec Zip [PHP5] LIGHTEMPLATE - MOTEUR DE TEMPLATES ULTRA-LÉGER par neigedhiver
Source avec Zip [PHP5.1] LISTING D'UN RÉPERTOIRE AVEC FILTRES par neigedhiver

Commentaires et avis

Commentaire de morpheus57 le 08/05/2007 13:35:28

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

Commentaire de Knolan le 08/05/2007 15:09:23

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

Commentaire de FhX le 08/05/2007 17:45:33

"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 :)

Commentaire de masternico le 08/05/2007 22:02:57

"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.

Commentaire de FhX le 08/05/2007 23:11:25

Apache 5 ?
Non.. Apache 2 et PHP5 :)

Commentaire de morpheus57 le 09/05/2007 09:32:55

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 :-)

Commentaire de webdeb le 09/05/2007 11:02:37

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
- ...

++

Commentaire de kankrelune le 09/05/2007 11:51:39

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°

Commentaire de Knolan le 09/05/2007 13:53:14

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

Commentaire de kankrelune le 09/05/2007 14:31:04

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°

Commentaire de masternico le 10/05/2007 01:30:44

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... ;)

(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

Commentaire de malalam le 13/05/2007 08:54:44 administrateur CS

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 ;-)

Commentaire de Knolan le 13/05/2007 13:48:41

Des que je sors la tete de mes partiels je me remet dessus, et merci pour tous les commentaires :)

Commentaire de Knolan le 26/05/2007 20:06:18

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

COM Excel [ par citt ] Bonjour,Je voudrait créer un fichier excel a partir de php, j'ai trouvé des sources pour faire ca qui vont bien mais mon probleme est que qu Paypal / Cyber Mut / e-Transactions [ par fguilbert ] Bonjour,Je dois installer des paiements Paypal / cybermut / et e-transactions (credit agricole) sur plusieurs de mes sites hébergés sur un serveur déd try-catch en PHP4 [ par audayls ] Salut,Cela fait un long moment que je galere sur un problème PHP4/PHP5 (plus particulièrement avec les Exceptions).Bon je précise tout de suite je sai Design pattern : Factory [ par neigedhiver ] Salut, Je me pose une question tout bête. Est-il judicieux d'embarquer une factory dans une classe abstraite, ou est-il préférable d'utiliser une cla Throw new HOW ? [ par codefalse ] Hello tout le monde ! :)Alors voila, pour mes besoins perso je me suis fait une classe AlternativException extends Exception et une classe InvalidArgu SoapFault exception: [HTTP] Error Fetching http headers [ par AlexN ] Bonjour,J'ai installé un service web (AXIS).Pour le tester, j'utilise :- soit un connecteur Java, qui répond toujours,- soit un client php, qui me pos EXCEPTION En Generale!!! [ par g_fuck ] Salut !!!Je viens a peinne de decouvrire que les Erreurs dans PHP ne sont pas toutes des Exceptions!Cependant J'aimerais trouver un moyen pour capture EXCEPTION ET ERROR HANDLING [ par g_fuck ] salut ! Y aurait il un moyen de gerer nos erreurs et exceptions comme cela ce fais en java par exemple? Parceque j'ai comme l'impression que en PHP i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales