2012-10-26 94 views
0

以下代码不会引发任何错误,但数据库不会备份新数据;SQL文件未备份

<?php 
include('conn.php'); 
$dbhost="localhost"; 
$dbuser="landshop_anitgop"; 
$dbpass="password"; 

$source=array("landshop_formdata.sql","landshop_clientdata.sql","landshop_blogs.sql","landshop_counter.sql","landshop_hitems.sql"); 

$path = '"C:/Program Files/EasyPHP-5.3.8.1/www/Landshoppe/Downloaded Dbs/"'; 

     $mysqldump = '"pathToExe".mysqldump.exe"'; 
     foreach($source as $db) { 
      $dbsource= $path.$db; 
      $command = "mysql -u{$dbuser} -p{$dbpass} {$db} < ".$path."backup_{$db}.sql"; 
     system($command,$output); 
     echo "Backed Up : ".$db." Output [".print_r($output,1)."]<br>"; 

    //system('mysql -u <user> -p<password> dbname < filename.sql'); 



} 

?> 

不知道怎么回事错..

回答

1

两点:

  1. 我认为你必须quoate你的路径

    //$path = "C:\Program Files\EasyPHP-5.3.8.1\www\Landshoppe/Downloaded Dbs/"; 
    // change this into 
    $path = '"C:/Program Files/EasyPHP-5.3.8.1/www/Landshoppe/Downloaded Dbs/"'; 
    
  2. 为什么你不使用mysqldump

此代码应工作

 <?php 
      $path = '"C:/Program Files/EasyPHP-5.3.8.1/www/Landshoppe/Downloaded Dbs/"'; 
      $mysqldump = '"pathToExe".mysqldump.exe"'; 
      foreach($source as $db) { 
       $dbsource= $path.$db; 
       $command = $mysqldump." -u{$dbuser} -p{$dbpass} {$db} > ".$path."backup_{$db}.sql"; 
      system($command,$output); 
      echo "Backed Up : ".$db." Output [".print_r($output,1)."]<br>"; 
      } 
+0

谢谢,唐纳德。试过了。仍然没有运气... –

+0

什么是输出?请发布完整代码 – donald123

+0

它为循环中的每个db输出[Output 1]。但不更新数据。我用当前的代码编辑了这个问题。 –