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

Langage PHP Discussion :

[Système] Exécuter une commande


Sujet :

Langage PHP

  1. #41
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    bon je vais recommencer
    soit tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    chdir('C:/Program Files/MySQL/MySQL Server 5.0/bin/');
    exec(...);
    soit tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %systemrootdir%MySQL/MySQL Server 5.0/bin
    dans ton PATH

    PS : utiliser les doubles quotes en PHP rélève de l'affreusité

    PSS : cela fais longtemps que j'ai abandonné le DEV sous windows
    je ne me rapelle plus des variables d'environnements exactes
    les trucs entre pourcentage

  2. #42
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    :o J'ai une piste :o:o:o

    voici mon code :
    chdir('C:/Program Files/MySQL/MySQL Server 5.0/bin/');
    $commande = '\mysql -hlocalhost -uroot -pmonpass < \"D:/guides.sql\"';

    exec($commande);
    Et là j'ai cette erreur dans apache :
    ERROR 1102 (42000): Incorrect database name 'd:/guides.sql'
    Seulement, je veux pas indiquer de base de données puisque ce fichier sql va créer une base de donnée et inseré dedans ...

  3. #43
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    pourquoi tu mets un antislash avant mysql ?

  4. #44
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Car si je le met pas, dans apache ca me sort cette erreur :
    '/mysql' n'est pas reconnu en tant que commande interne
    ou externe, un programme ex‚cutable ou un fichier de commandes.

  5. #45
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    ça m'étonnerais parce php
    quand une chaine est avec des simple quotes ne l'intérprète pas il s'en fout de son contenu
    à l'inverse de chaine entourée par des simples quotes

  6. #46
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Moi ca m'a donnée ca, fais le test chez toi pour confirmer ... ou pas


    Et sinon pour en revenir a l'erreur qui me marque dans apache,
    je veux pas indiquer de base de données puisque ce fichier sql va créer une base de donnée et inseré dedans ...

  7. #47
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    1/ je peux pas tester ton truc puisque je ne suis pas sous windows
    2/ si je me souvient bien cette méthode est pour remplir une base de donnée existante et non en créer une
    - Créer ta base à la main
    - Change la commande en mettant le mot base avant le cevron '<'

    PS : On y est presque

  8. #48
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    n fichier sql, il y a le create table et les insert into et meme lec create database, il faut juste que ma ligne de commande veuille bien lire le fichier

  9. #49
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    $commande = 'mysql -h localhost -u root -p monpass < D:/guides.sql';
    exec($commande,$array);
    qu'est ce que te donne $array ?

    PS : en fait pourquoi as tu besoin de faire cela ?

  10. #50
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    J'ai pas encore tester ce que tu as dis mais le but et de pouvoir faire un restaure de dump.

    Car en php, c'est beaucoup trop long ... (déjà tester le code php bigdump) et il a pas réussi car time out alors qu'avec la commande cmd il le fai en 5sec meme pas.

  11. #51
    Membre confirmé Avatar de llaffont
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2007
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2007
    Messages : 701
    Points : 597
    Points
    597
    Par défaut
    Si ton problème sous PHP n'est qu'une question de TimeOut.

    Je te conseil de tester ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set_time_limit(0);/*tu ne gères plus l'expiration des délais de traitement */
    bigdump() /* si c'est une fonction biensur*/
    set_time_limit(30); /* Tu remets ta valeur par défaut*/

  12. #52
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    C'est une question de timeout mais surtout de rapidité ...

    Je verrais donc lundi ce que je vais faire.

  13. #53
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 206
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par sliderman Voir le message
    $commande = 'mysql -h localhost -u root -p monpass < D:/guides.sql';
    exec($commande,$array);
    qu'est ce que te donne $array ?
    j'ai fais un var_dump($array) et j'obtiens ceci :
    array(0) { }

    Si ton problème sous PHP n'est qu'une question de TimeOut.
    Pas seulement, c'est pour cela que je privilégie le exec()

Discussions similaires

  1. Réponses: 12
    Dernier message: 28/04/2009, 09h20
  2. [Système] Exécuter une ligne de commande
    Par fordprobe dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2007, 14h46
  3. [Système] Exécuter une commande java avec exec()
    Par kenny49 dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2007, 09h29
  4. Exécuter une commande système avec perl
    Par Olivier Regnier dans le forum Langage
    Réponses: 12
    Dernier message: 08/04/2007, 16h41
  5. exécuter une commande système à partir de sqlplus?
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 24
    Dernier message: 08/11/2005, 15h11

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