IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Creer une base de données à partir d'un fichier PHP


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut Creer une base de données à partir d'un fichier PHP
    Bonjour !

    Alors voilà, j'ai un petit soucis, j'aimerai :

    - Créer une nouvelle base de données
    - celle ci comportera 8 tables qui seront copiées d'une autre base de données.
    - Je voudrai qu'elle s'appelle : AncienneBaseDonnées_numVersion
    - le numero de version sera donné par l'utilisateur en ligne de commande.

    voilà, je ne sais pas du tout comment m'y prendre sachant que :

    - Il faut que j'execute un " show create table NmTable" sachant qu'il faut que je fasse un tableau en PHP ( je ne sais pas faire) avec les noms de mes tables à copier...

    Voilà si quelqu'un à une idée ou solution, je suis preneuse!

    Ellia

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    y a t'il une raison particuliere pour ne pas le faire a la main en utilisant phpmyadmin ?

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Oui ceci doit etre absolument executé en ligne de commande.
    donc doit etre crée en php

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    si c'est pour faire un backup, un petit script bash et mysqldump pourrait le faire. C'est rare les applis capables d'exploiter des données sur des bases de données "variables".

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Je vous remercie de cette idée.

    Alors je voudrai crée un fichier qui permet de récupérer les structures de creation de tables, j'ai donc fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $command1 = "mysqldump -u root -p --password=\"$nomMDP\" $DB->getDbName() [coureur, entraineur, participation]  ";
      $recup=  shell_exec($command1);
    puis après j'ouvre mon fichier, et je copie $recup à l'intérieur.

    Est ce comme ça ou pas ?

  6. #6
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    tu n'es même pas obligé de le faire dans un shell php.

    Ton script fait du backup, il s'execute donc via un cron ou une tache planifiée windows ou un ordonnanceur exotique si tu as moins de chance.

    dans l'ordonnanceur, au lieu de lancer l'executable php(.exe) qui lance la sauvegarde, mysqldump(.exe) qui est aussi un executable, tu lances directement le 2e executable. si tu es dans une situation ou il te faut passer par l’intermédiaire du php pour ajouter des traitements avant ou après, c'est la bonne méthode (sous windows, ya un php qui s'execute dans un cmd et pas l'autre, tu verras).

    attention php est un peu c** quand il s'agit d’exécuter des binaires externes, surtout si tu veux récupérer le flux "out" et "err" (1 et 2 si tu fais du shell), le conseil c'est de trouver la bonne ligne de commande en shell et la transcrire en php jusqu'à ce que ça marche. Et attention aux espaces.

  7. #7
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    je suis assez partisant de refiler des commandes plus complexe pour cacher certaines choses à PHP (vu qu'il a un droit limité d'usage de la mémoire)

    mysqldump --all-databases > dumpfile.sql
    mysqldump --all-databases | gzip -c > dumpfile.sql.gz

  8. #8
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Okay d'accord merci beaucoup.

    Entre temps j'ai fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $command1 = "mysqldump -u root -p --password=\"$nomMDP\" $nomBase --opt --add-drop-table=false --add-locks=false --compact=true --default-character-set=utf8  --comments=FALSE  --tables coureur  ";
      $recup=  shell_exec($command1);
    Cependant, le fichier qui sort, possède des commentaires tels que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /*!40101 SET @saved_cs_cour     = @@character_set_cour */;
    /*!40101 SET character_set_cour = utf8 */;
    une idée pour retirer ces commentaires génant à l'execution de mon script?

  9. #9
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    pourquoi les commentaires te gènent? malgré le comment=false ?

  10. #10
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mai 2012
    Messages : 40
    Points : 18
    Points
    18
    Par défaut
    Normalement c'est bon, les commentaires ne sont pas gênants.
    Merci.

    sinon, une autre petite question, comment faire pour selectionner plusieurs tables ?

    Sachant que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $command1 = "mysqldump -u root -p --password=\"$nomMDP\" $nomBaseClient --opt --add-drop-table=false --add-locks=false --compact=true --default-character-set=utf8  --comments=FALSE  --tables coureur participation ...
    Mais ça ne marche pas, ça me crée que la table "coureur"

Discussions similaires

  1. [MySQL] Remplissage d'une table d'une base de données à partir d'un fichier CSV
    Par bourbita.thameur dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 24/03/2009, 14h13
  2. Créer une base de données à partir d'un fichier .dmp
    Par funboard dans le forum Import/Export
    Réponses: 1
    Dernier message: 08/12/2008, 17h14
  3. Réponses: 1
    Dernier message: 14/05/2008, 17h02
  4. [Conception] Alimenter une base de données à partir d'un fichier texte
    Par gharbi5 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/10/2007, 13h12
  5. Réponses: 3
    Dernier message: 29/03/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo