2011-08-15 5 views
0

PHP 시스템 명령어와 mysqldump.exe를 사용하여 데이터베이스를 백업하려고합니다. 나는 mysqldump.exe에 대한 절대 경로를 지정했고 그 다음에 다양한 옵션이있다.PHP가 비어있는 mysqldump 파일

이 내가 현재 통화를하고 방법입니다 - 이것은 전혀 내용이있는 SQL 파일을 생성

$path = "C:\Documents and Settings\User\Desktop\ABCD\mysqldump.exe"; 
$command = $path." <dump options>" > <backup filename> "; 
system($command); 

.

$path = "C:\ABCD\mysqldump.exe"; 
$command = $path." <dump options>" > <backup filename> "; 
system($command); 

이 문제가되므로 경로 이름의 공백 때문에 문제가 발생한 것 같습니다.

경로에 공백이 포함되어있을 때 어떻게 작동시키는 지 알 수 없습니다. 내가 escapeshellarg에 대해 얘기 다른 스레드를 확인하지만 경로를 사용 중 하나를 작동하지 않습니다.

도와주세요.

답변

1

정말로 이것을하고 있습니까?

$system($command); 

대신해야합니다
// No $ on system() 
system($command); 

는 또한 Windows 경로에 대한 이중 백 슬래시를 시도 :

$path = "\"C:\\Documents and Settings\\User\\Desktop\\ABCD\\mysqldump.exe\""; 
+0

미안, 즉 타이핑 실수였다. 나는 system ($ command)을 사용하고있다. 하지만 공백이 없으면 이중 백 슬래시를 사용하여 공간 문제를 해결할 수 있습니다. – Scranton

+1

경로는 실제 명령 내에서 따옴표로 묶어야합니다. ' "\"C : \\ ...... mysqldump.exe \ ""'그렇지 않으면 스페이스는'C : \ Documents'를 실행하여 명령을 죽일 것입니다. –

+0

좋아요, Michael과 Marc에게 감사드립니다. – Scranton