2013-05-10 73 views
0

我有一個名爲DB demo_db 與下表:如何導出CSV文件中的整個數據庫MYSQL?

user 
    Id 
    Name 

history 
    Id 
    userId 
    report 

start_test 
    Id 
    userId 
    score 

final_test 
    Id 
    userId 
    score 

我如何的所有表導出到MySQL中使用INTO OUTFILE CSV文件?所以我可以有列名和數據下面,我想成爲一個能夠添加過濾器,如果有可能將每個表添加到同一個文件中的新選項卡....或者如果我可以只顯示所有每個用戶在一行中的數據?

我不能這樣做:SELECT用戶。 ,歷史。,start_test。*,final_test。* INTO OUTFILE從用戶,歷史,start_test,final_test

我做到了使用mysqldump但它不顯示數據,因爲我想要的。

我正在用PHP做這個。

+0

採取無法導出,在短短一個CSV文件中的所有表數據。一個表格用於一個文件。或者你可以建立一個查詢並將結果寫入一個文件中並用數據分隔; – Nagasaki 2013-05-10 14:59:59

+0

我不能這樣做︰SELECT user。*,history。*,start_test。*,final_test。* INTO OUTFILE FROM user,history,start_test,final_test – antonioj1015 2013-05-10 15:11:41

+0

我不認爲INTO OUTFILE將起作用,您可以創建一個在csv文件中查看並轉儲此視圖。你需要在你的SQL查詢中加入你的表格 – Nagasaki 2013-05-10 15:17:28

回答

0

如果您在使用phpMyAdmin

然後轉到出口 - >點擊自定義 - display all possible options

下面你會發現複選框:Put columns names in the first row。檢查在第一行中獲取列名稱,並在下面獲取數據。

+0

我怎樣才能在PHP中做到這一點? – antonioj1015 2013-05-10 15:07:28

+0

你不能。 phpMyAdmin是用PHP編寫的基於網絡的MySQL管理工具。 – 2013-05-10 15:16:24

+0

只有你可以做的事情是,如果你想用它作爲一個數組在PHP中,然後做格式爲PHP數組和視圖輸出爲文本 – Akaash 2013-05-10 15:19:45

2

沒有直接執行此操作的命令,您需要模擬mysqldump的行爲並以您希望的方式輸出CSV。

$FILE = fopen("output.csv", "w"); 
mysql_connect($server, $login, $password); 
$res = mysql_query("SHOW TABLES FROM $db"); 
$tables = array(); 
while($row = mysql_fetch_array($res, MYSQL_NUM)) { 
    $tables[] = "$row[0]"; 
} 
foreach($tables as $table) { 
    $columns = array(); 
    $res = mysql_query("SHOW COLUMNS FROM $table"); 
    while($row = mysql_fetch_array($res, MYSQL_NUM)) { 
     $columns[] = "$row[0]"; 
    } 
    fwrite($FILE, implode(",", $columns); fwrite("\n"); 
    $resTable = mysql_query("SELECT * FROM $table"); 
    while($row = mysql_fetch_array($resTable, MYSQL_NUM)) { 
     fwrite($FILE, implode(",", $row)); fwrite("\n"); 
    } 
} 

MYSQL_NUM用於給你一個數字索引數組。

如果你不想輸出到一個文件,而是直接從網站上下載到您的計算機,添加以下代碼行到腳本的開頭:在fwrites

header('Content-Type: text/csv; name="filename.csv"'); 
header('Content-Disposition: attachment; filename="filename.csv"'); 

更改爲回聲或打印。

噢,我在輸出中添加了一些換行符,因爲我確信你不需要一條長長的路線。

+0

「此時做一個」SELECT * FROM $表「並處理數據到文件。「 – antonioj1015 2013-05-10 15:34:09

+0

問題/評論是?你需要關於如何做選擇查詢和輸出它的代碼? – 2013-05-10 15:37:01

0
CREATE VIEW MY_VIEW 
AS 
SELECT user.*, history.*, start_test.*, final_test.* 
FROM 
user, history, start_test, final_test 
WHERE user.id = history.userId 
AND user.id = start.userId 
AND user.id = final.userId 

轉儲的視圖使用導出工具內容在phpMyAdmin

相關問題