2010-07-22 13 views
1

J'ai besoin d'exécuter Shell_exec pour importer une sauvegarde dans ma base de données MYSQL. Aujourd'hui, je fais ceci:Puis-je localiser automatiquement l'exécutable MySQL à partir de PHP?

$ ShellExec = 'C: \ wamp \ bin \ mysql \ mysql5.1.36 \ bin \ mysql -u root localhost -h mertero_decicare < D: \ localhost \ sql \ decisions.sql';

$ out = shell_exec ($ shellExec. '2> sortie');

Qui fonctionne. Mais existe-t-il un moyen de 'trouver' l'emplacement de l'exécutable mysql depuis PHP? Donc, je n'ai pas besoin de hardcaord mon emplacement mysql?

Ron

Répondre

0

Sur Windows pourrait ajouter C: \ wamp \ bin \ mysql \ mysql5.1.36 \ bin \ vous chemin de l'environnement Variables. Voir: http://en.wikipedia.org/wiki/Environment_variable

De cette façon, vous pouvez simplement appeler shell_exec ('mysql ...'); Alernatively vous ne pourriez pas utiliser mysqldump, vous pourriez utiliser SELECT INTO OUTFILE dans MySQL bien que vous ayez besoin de le faire pour chaque table. Pas aussi élégant que mysqldump.

+0

Merci - mais cela n'aide pas vraiment, car je veux que mon script soit utilisé sur de nombreux ordinateurs, et cela nécessite une autre étape dans 'installation' que j'essaie d'éviter en premier lieu ... –

1

Un moyen facile de le faire est de l'ajouter au chemin de l'environnement Windows (il se trouve dans le chemin sur la plupart des systèmes Unix). Ensuite, vous devez juste appeler mysql depuis le script.

Voici la page d'information sur la façon de le faire de MySQL: MySQL Windows Service Start

Et sur cette page que vous voulez trouver le texte

« Pour le rendre plus facile d'appeler les logiciels MySQL, vous pouvez ajouter le chemin d'accès du répertoire bin MySQL à votre variable d'environnement système PATH Windows "

et de lire cette section. En utilisant cette méthode, vous devez juste appeler mysql sans un chemin.

+0

Merci - mais ça ne m'aide pas vraiment, car je veux que mon script soit utilisé sur beaucoup d'ordinateurs, et cela nécessite une autre étape dans l'installation que j'essaye d'éviter en premier lieu ... –