exe de requêtes acceptant des .sql en paramètres avec mysql

exe de requêtes acceptant des .sql en paramètres avec mysql - PHP - Programmation

Marsh Posté le 10-09-2004 à 08:42:09    

Bonjour,
 
je dois faire exécuter un fichier .sql à mysql. Mais la fonction mysql_query n'accepte qu'une commande. Du coup la présence de ; à la fin d'une commande sql empêche la lecture intégrale du .sql.
 
J'ai donc deux choix :  
1) faire un parser pour lire mon .sql
2) Utiliser un executable qui accepte un .sql en paramètre à l'image de ce que l'on retrouve sous MSDE.
 
Ce exécutable existe-t-il ?
 
Merci d'avance.

Reply

Marsh Posté le 10-09-2004 à 08:42:09   

Reply

Marsh Posté le 10-09-2004 à 09:45:48    

Essaye de voir comment se débrouille phpMyAdmin.

Reply

Marsh Posté le 10-09-2004 à 10:45:47    

cet executable c tout simplement mysql
 
mysql -u user -h host -ppassword ta_base <tonfichier.sql

Reply

Marsh Posté le 10-09-2004 à 13:44:04    

Dans une console çà marche bien en effet
mysql -d nombase < nomfichier.sql
 
Mais dans le source php avec la commande passthru çà ne marche pas.
Des idées ?
 
$cmd = "MySQL\\bin\\mysql.exe -D base < base\\sql\\test.sql";
passthru ($cmd);
Y a-t-il une erreur dans l'affectation ?


Message édité par nickola le 10-09-2004 à 13:47:09
Reply

Marsh Posté le 10-09-2004 à 15:02:06    

y a surtout je pense une erreur dans l'appel de la fonction, il faut surement donner son chemin en entier non ?

Reply

Marsh Posté le 10-09-2004 à 15:17:52    

ben apparment il n'est pas nécessaire d'inclure le 'c:' mais bon je vais essayer avec.

Reply

Marsh Posté le 10-09-2004 à 15:21:25    

C'est bon çà marche. il faut bien préciser le c:\\ dans le source php.
Dans la console c'est différent le prompt est déjà à c:> du coup le simple fait de taper
Mysql\bin\mysql.exe -D base < base/sql/test.sql fonctionne.
Mais en php il faut absolument lui donner le lecteur.
 
Merci beaucoup Sébastien :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed