2010-03-30 46 views
2

我環顧四周,並沒有什麼似乎工作:MySQL的DUMP爲CSV

$file = '/path/to/file.csv'; 
$cmd = 'mysqldump DATABASE TABLE > '.$file.' --host=localhost --user=USER --password=PASS'; 
$cmd .= ' --lock-tables=false --no-create-info --tab=/tmp --fields-terminated-by=\',\''; 
exec($cmd); 

一切我試圖創建一個空的CSV文件。有任何想法嗎?非常感謝。

+0

@ clazzy的答案從[導出的MySQL以CSV文件](http://stackoverflow.com/questions/5656987/export-mysql-to-csv-file)是我找到的最好的純PHP解決方案 – Yarin 2012-03-21 12:52:51

回答

5

我找到了一種方法來實現通過命令行這種用mysql -

 $file = '/path/to/file.csv'; 
     if(is_file($file)) 
      unlink($file);  
     $sql = 'SELECT * FROM database.table'; 
     $cmd = 'mysql --host=localhost --user=USER --password=PASS --quick -e \''.$sql.'\' > '.$file; 
     exec($cmd); 
0

當你這樣做時會發生什麼: mysqldump DATABASE TABLE> /path/to/file.csv [從命令行中刪除命令的其餘部分]?

它工作嗎?

你的最後一行嘗試:

$cmd .= " --lock-tables=false --no-create-info --tab=/tmp --fields-terminated-by=','"; 

單引號沒有得到在一個單引號字符轉義。

0

> '.$file.'重定向應該是命令的最後一個(或第一)部分