Journal PhpGenericDataBase - Classe en cours de devellopement

Posté par  .
Étiquettes : aucune
0
21
déc.
2006
Qui n'as jamais rêvé de pouvoir basculer son code PHP d'une base MySQL à une base PostgreSQL sans avoir a tout re-coder?

La classe que je suis en train de développer le permet en changeant 2 variables dans le fichier de configuration.

Le script est une classe PHP (actuellement cbd) qui permet de s'affranchir du type de base de donnée attaquée par un programme PHP.
Les bases supportées sont :

* ORACLE
* PostgreSQL
* MySQL

Les fonctions actuellement supportées sont :

* execute
* fetch_row
* fetch_assoc

Fonctionnement : Les fonctions définies dans la classe sont des wrappers pour les fonctions officielles PHP.


J'attends vos retours sur ce petit code afin d'en faire (je l'espère) un outil beaucoup plus polyvalent.
  • # Oublis : le site ou on peux récuperer cet outil

    Posté par  . Évalué à 1.

    Je ne dois pas être très doué, j'ai oublié de donner le lien vers cet outil.

    Je corrige donc le tir : http://www.demongeot.biz/outils/Classe-Connexion-Bases-Donne(...)


    Cordialement,
    Richard.
  • # Commentaire supprimé

    Posté par  . Évalué à 6.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: PDO

      Posté par  . Évalué à 3.

      Une seule réponse pour ce fil et antonus, cette classe est un projet que j'ai entamé pour l'IUT (donc relativement lisible encore, qui as peut être un but éducatif), et quand je l'ai commencé je ne connaissait pas les outils PHP qui le permettaient.

      De plus, pour le projet d'IUT, il était impossible d'installer une classe PEAR ou autre sur le serveur de l'IUT qui était LE serveur avec obligation de résultat. Nos serveurs perso (MySQL et PostgreSQL) étaient du bonus.


      Je ne pense pas être a la hauteur de ces autres outils, mais celui-ci (remarque une classe PEAR aussi) peux être ajoutée DANS le code du site sans installer une nouvelle classe sur le serveur.


      Et puis j'ai retravaillé dessus recement (pour voir comment je codais il y as un an, et j'ai pensé peut être à tord que ce code pourrait interesser du monde, offrant ainsi une alternative (jeune et pas finie certes).

      D'autre part, si le projet trouve des gens qui veulent l'utiliser, j'essairai de coder un outil permettant le transfer de la base de donnée (genre backuper une base ORACLE sur une base MySQL ou autre), d'ajouter le support de bases multiples (le même code PHP attaque une base ORACLE et une base MySQL, soit pour avoir des outils tiers qui s'appuient sur les données de ces bases, soit pour faire une transition en douceur).

      Donc la force de ce projet est que je suis (encore) très motivé pour faire quelque chose d'utile, non seulement a moi, mais aussi aux autres. Si on me demande une fonction, c'est qu'elle est utile, donc je ferais de mon mieux pour la coder, même si je suis loin d'être un dieu ;)
      • [^] # Re: PDO

        Posté par  . Évalué à 3.

        ça a beau déjà être fait, il ne faut pas croire que c'était une erreur de penser que ça pourrait être utile à d'autres.
        Je ne pense pas que c'est ce que bersace a voulu dire.
        • [^] # Re: PDO

          Posté par  . Évalué à 1.

          Comme je l'ai dit, j'ai répondu a 2 personnes, Etienne et antonus.

          Le passage "et j'ai pensé peut être à tord que ce code pourrait interesser du monde" était plus destiné a antonus, à la partie : "Moi je m'embête pas à réinventer la roue".


          Et si j'ai posté un lien vers ma classe, c'est car je crois que la diversité est UNE FORCE du libre, et non comme certains le pensent et le disent, une faiblesse. En ayant parlé avec plusieurs amis, dont 2 qui ont trouvé le projet sympa, je sais déjà que ce projet (mort né?) peux interesser, au moins sur le plan culturel, car codé de telle façon qu'on peux extraire rapidement le manuel d'utilisation de PHP avec un type de classe donné. (Il suffit de lire la classe oracle.php par exemple).

          Et puis ce genre de remarque, je ne le prends jamais mal, car je me dis que si j'ai fait l'outil c'est que j'en avais envie / que je ne connaissait pas ce qui existait déjà. Dans un cas, c'est un plaisir perso, dans un autre un manque de culture qui es a présent corrigé.

          Je pense sincèrement que je suis loin des performances des autres acteurs, mais d'un autre coté pour les gens qui veulent comprendre certaines différences entre les bases de données, ce petit code (moins de 500 lignes licence et changelog compris) est un pas trop mauvais moyen.

          Cordialement,
          Richard.
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 2.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 2.

          Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: PDO

          Posté par  . Évalué à 1.

          "Ça arrive à tout le monde de réinventer la roue."

          En l'occurence c'était voulu, afin d'apprendre a utiliser les différentes bases ;)

          Je trouve que j'apprends mieux en utilisant qu'en regardant la doc ;) et là j'ai du utiliser les 3 bases. D'autre part, le manque d'élégance est réel, mais le début de cette classe remonte aux premiers scripts PHP que j'ai réellement fait ;) (avant j'ai fait que 2 - 3 merdes infâmes), et je désirais un code "simple" a faire, car quand j'ai décidé de faire cette classe le projet n'avais plus que 4 jours avant le rendu (donc 4 jours pour faire la classe qui fonctionne). La dernière nuit fut d'ailleurs folclorique, du fait que j'ai remarqué un soir a 18h que PostgreSQL voulait des minuscules, et que Oracle voulait des majuscules (et a l'époque je n'avais pas pensé a faire un NomChamp) donc couché a 3h du mat pour préseter le projet a 8h .....


          Enfin merci beaucoup pour me donner des indications et des moyens de rendre l'utilisation plus élégante ;), pour tes postes constructifs ainsi que pour avoir pris le temps de lire mon code.
          • [^] # Commentaire supprimé

            Posté par  . Évalué à 2.

            Ce commentaire a été supprimé par l’équipe de modération.

  • # Euh...

    Posté par  . Évalué à 1.

    Moi je m'embête pas à réinventer la roue, j'utilise http://adodb.sourceforge.net/
    • [^] # Re: Euh...

      Posté par  (site web personnel) . Évalué à 3.

      Ah bon, pourquoi tu n'es pas sous Perl alors ?

      Bon OK -> []
      • [^] # Re: Euh...

        Posté par  (site web personnel) . Évalué à 2.

        sub reste{
            my $req=shift;
            my $sth=$dbh->prepare($req);
            return(0,$DBI::errstr) if $DBI::errtsr;
            $sth->execute;
            return(0,$DBI::errstr) if $DBI::errtsr;
            while(@_=$sth->fetchrow_array){
                print "non, reste !\n";
                print "" . join "::",@_."\n";
            }
            return(1,"OK");
        }
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 2.

        Ce commentaire a été supprimé par l’équipe de modération.

  • # comme Perl quoi ...

    Posté par  (site web personnel) . Évalué à 3.

    DBD / DBI ?
    arf ... ca existe deja !
    ha non ... c'est pour Perl ... desole :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.