Avatar billede dennism Nybegynder
05. marts 2005 - 11:42 Der er 18 kommentarer og
2 løsninger

PHP: System - angiv sti

Jeg forsøger at køre følgende system-funktion, for at hente nogle data fra mySQL over i en text-fil:

system("cmd /c C:/Programmer/MySQL/MySQL Server 4.1/bin/mysqldump > test.txt");

Mit problem er bare, at overstående selvfølgelig ikke virker fordi der er mellemrum i den sti jeg har angivet til mysqldump.

Hvad kan man gøre, for at det alligevel virker? Har prøvet at sætte '' omkring, men det virker ikke :(
Avatar billede stalle Nybegynder
05. marts 2005 - 12:51 #1
Uden at vide om det vil virke kunne et forslag være:
system("cmd /c C:/Programmer/MySQL/MySQL%20Server%204.1/bin/mysqldump > test.txt");
Avatar billede dennism Nybegynder
05. marts 2005 - 13:12 #2
Det hjælper desværre ikke :(
Avatar billede coderdk Praktikant
05. marts 2005 - 13:28 #3
Hvad med:

system("cmd /c \"C:/Programmer/MySQL/MySQL%20Server%204.1/bin/mysqldump\" > test.txt");
Avatar billede taskmgr Nybegynder
05. marts 2005 - 13:30 #4
Virker kommandoen når du kører den i en prompt?

Så prøv evt. med:
exec("\"c:\Programmer/MySQL/MySQL Server 4.1/bin/mysqldump\" > test.txt");
Avatar billede taskmgr Nybegynder
05. marts 2005 - 13:30 #5
Det skulle naturligvis være:
exec("\"c:\Programmer\MySQL\MySQL Server 4.1\bin\mysqldump\" > test.txt");
Avatar billede coderdk Praktikant
05. marts 2005 - 13:31 #6
Ja, hvorfor bruger du egentlig "cmd /c"?
Avatar billede coderdk Praktikant
05. marts 2005 - 13:32 #7
taskmgr så skulle det nok enten være:

exec("\"c:\\Programmer\\MySQL\\MySQL Server 4.1\\bin\\mysqldump\" > test.txt");

eller:

exec('"c:\Programmer\MySQL\MySQL Server 4.1\bin\mysqldump\" > test.txt');
Avatar billede dennism Nybegynder
05. marts 2005 - 13:43 #8
exec("\"c:\Programmer\MySQL\MySQL Server 4.1\bin\mysqldump\" > test.txt");

Denne virker fint hos mig. Er det den korrekte at bruge?
Avatar billede dennism Nybegynder
05. marts 2005 - 13:46 #9
Jeg laver et link til mappen på følgende måde:

$serverhref = "c:\Programmer\MySQL\MySQL Server 4.1\bin\";

Men der meldes naturligvis fejl, fordu jeg bruger \
Hvordan laver jeg den, så den virker?
Avatar billede taskmgr Nybegynder
05. marts 2005 - 13:46 #10
system() skal du bruge, hvis du vil have outputtet fra kommandoen, hvilket du jo her skal have i tekstfilen. Jeg tror i øvrigt at mysqldump skal have nogle options med (f.eks. --all-databases), men det kan være mig der husker forkert.
Avatar billede dennism Nybegynder
05. marts 2005 - 13:48 #11
taskmgr >>

Ja, mysqldump skal have input - og det har jeg også selv :) ville bare undlade dem i dette spm. for at gøre det nemmere for jer.
Avatar billede dennism Nybegynder
05. marts 2005 - 13:48 #12
Kan I svare på det med variablen?
Avatar billede coderdk Praktikant
05. marts 2005 - 13:48 #13
system returnerer den sidste linje af outputtet, exec returnerer alt...
Avatar billede coderdk Praktikant
05. marts 2005 - 13:51 #14
Ja, dette burde så virke:

$serverhref = "c:\Programmer\MySQL\MySQL Server 4.1\bin\";
exec("\"" . $serverhref . "mysqldump\" > test.txt");

Jeg mener dog stadig at \ burde være \\, eller " burde være ' så hvis du har en sti: c:\nusse\rasmine - vil den se det som: c:(ny linje)usse(carriage return)asmine
Avatar billede dennism Nybegynder
05. marts 2005 - 13:52 #15
Hmm..Jeg lavede den bare om til:
$serverhref = "c:/Programmer/MySQL/MySQL Server 4.1/bin/";

Smider I lige et svar?
Avatar billede coderdk Praktikant
05. marts 2005 - 13:53 #16
Aight ;)
Avatar billede taskmgr Nybegynder
05. marts 2005 - 13:55 #17
$serverhref = "c:\Programmer\MySQL\MySQL Server 4.1\bin\";
Hvis du gør sådan, skal du netop lave dobbelt backslashes som coderdk skriver, ellers får du en parse error.

$serverhref = "c:\\Programmer\\MySQL\\MySQL Server 4.1\\bin\\";
Avatar billede dennism Nybegynder
05. marts 2005 - 13:55 #18
Hvad er det der skal ændres, for at den fejl ik opstår?
Avatar billede taskmgr Nybegynder
05. marts 2005 - 13:56 #19
Brug din egen metode, eller den sidste jeg skrev :)
Avatar billede dennism Nybegynder
05. marts 2005 - 13:57 #20
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester