2010-07-20 37 views
0

我已經嘗試在命令行中使用mysql dump並且它工作正常。我如何在PHP中做到這一點? 我從網上找到了這段代碼,並試了一下。如何在php中使用mysql dump

<?php 
ob_start(); 

$username = "root"; 
$password = "mypassword"; 
$hostname = "localhost"; 
$sConnString = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 


$connection = mysql_select_db("test",$sConnString) 
or die("Could not select DB"); 
$command ="C:\wamp\bin\mysql\mysql5.1.36\bin --add-drop-table --host=$hostname --databases test > C:\wamp\www\test\tester.sql"; 

我真的不明白這是什麼下面的代碼表示: 系統($命令);

$dump = ob_get_contents(); 
ob_end_clean(); 



$fp = fopen("dump.sql", "w"); 
fputs($fp, $dump); 
fclose($fp); 

?> 

我進口生成的.sql文件到數據庫和我從phpMyAdmin的這個錯誤:

There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem 

ERROR: Unknown Punctuation String @ 3 
STR: :\ 
SQL: 
E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin; 
E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin; 
E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin; 

SQL query: 

E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin; 

MySQL said: 

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'E:\Users\Nrew\Documents>set path=C:\wamp\bin\mysql\mysql5.1.36\bin' at line 1 

請幫幫忙,我想學習如何在PHP中做到這一點。

回答

1

system($command);執行外部mysqldump命令。

我真的不明白你粘貼的腳本,它看起來像是兩個腳本的混合?

無論如何,轉儲文件中的語法錯誤可能意味着您有一個版本不匹配(在目標服務器上運行4.x?)。

使用compatible開關來生成工作在目標版本中的轉儲文件,例如.e.g。

--compatible=mysql40