2013-05-10 112 views
0

我想從我的mysql服務器將兩個表導出到web服務器上的csv文件。將MySQL表導出到本地csv

mysql和webserver都運行在同一臺機器上,並且不會面向網絡。它只是一個小型web應用程序來自動執行我定期執行的任務,因此安全性不是問題。

我嘗試的方式,這將是絕對理想,但沒有工作是:

$exportArticle = 'SELECT * 
INTO OUTFILE "article_line.csv" 
FIELDS TERMINATED BY "," 
ENCLOSED BY "\"" 
ESCAPED BY "\\" 
LINES TERMINATED BY "\\n\\r" 
FROM article_line'; 

,然後與調用它在我的腳本:

mysql_query($exportArticle); 

但不幸的是,這並不寫任何東西(雖然它也沒有出錯)。

如果有人可以幫助我,那就太好了!謝謝

編輯:只是爲了澄清,我花了最後2個半小時瀏覽谷歌和stackoverflow尋找這個解決方案,並嘗試了很多不同的方式,這並不好笑。這只是我頭腦中的混亂,我無法理解,所以如果有人相信答案已經在這裏,那麼道歉 - 迄今爲止,它還沒有爲我工作。

+1

可能重複http://stackoverflow.com/questions/4249432/export-to-csv-via-php – RelevantUsername 2013-05-10 14:44:24

+0

你需要確保你有位置的寫入權限你在哪裏寫文件。 – Sumoanand 2013-05-10 14:47:40

+1

我做了同樣的一次....和你一樣,我認爲這並不工作,但它的作品....嘗試複製和粘貼查詢在你的mysql客戶端或phpmyadmin並運行它,只是爲了看看是否觸發一些錯誤 – Hackerman 2013-05-10 14:48:58

回答

0

更改您的代碼

mysql_query($exportArticle) or die(mysql_error()); 

這會給你一個想法,如果執行查詢時出現任何錯誤。如果您在mysql_query上沒有執行錯誤處理,即使出現錯誤,它也會繼續執行下一個語句。

+0

你,先生,是個天才。 我甚至沒有考慮過 - 在編碼幾個小時後的星期五晚上,我的思維並不好。 感謝您的解決方案 - 我的FROM的格式化丟失了反引號。 – 2013-05-10 15:20:34

0

你可以下載MysqlWorkbench,然後做

SELECT * FROM article_line 

你會本身則A按鈕這樣enter image description here

只需點擊它,你將有CSV導出選項中有

+0

感謝您的建議 - 這是我最初的做法,除了通過SQLYog。我想編寫它的原因是A.它節省了一個步驟,但是B.爲了方便用戶,非技術人員可以使用它。 感謝您的建議,但! – 2013-05-10 15:25:32

0

我不知道你是否設法做到了,但我認爲這個命令對php有問題。 也許訪問該文件被拒絕。如果要在除服務器主機之外的某個客戶端主機上創建生成的文件,則不能使用SELECT ... INTO OUTFILE。

http://dev.mysql.com/doc/refman/5.0/en/select.html

,您可以改用這樣的事情。

function sqlQueryToCSV($filename, $query) { 
     $result = mysql_query($query); 
     $num_fields = mysql_num_fields($result); 
     $headers = array(); 
     for ($i = 0; $i < $num_fields; $i++) { 
       $headers[] = mysql_field_name($result , $i); 
     } 
     $fp = fopen(mysql_real_escape_string(getcwd().'\\'.$filename), 'w'); 
     if ($fp) { fputcsv($fp, $headers); while ($row = mysql_fetch_array($result)) { 
     $arrayValues = array(); 
     foreach ($headers as $header) 
     { 
      $arrayValues[] = $row[$header]; 
     } 
     fputcsv($fp, $arrayValues); } 
     } 
     fclose($fp); } 

來源:http://forums.exchangecore.com/topic/907-function-to-convert-mysql-query-to-csv-file-with-php/