如何导出CSV文件中的整个数据库MYSQL?
我有一个名为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做这个。
如果您在使用phpMyAdmin
然后转到出口 - >点击自定义 - display all possible options
下面你会发现复选框:Put columns names in the first row
。检查在第一行中获取列名称,并在下面获取数据。
我怎样才能在PHP中做到这一点? – antonioj1015 2013-05-10 15:07:28
你不能。 phpMyAdmin是用PHP编写的基于网络的MySQL管理工具。 – 2013-05-10 15:16:24
只有你可以做的事情是,如果你想用它作为一个数组在PHP中,然后做格式为PHP数组和视图输出为文本 – Akaash 2013-05-10 15:19:45
没有直接执行此操作的命令,您需要模拟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"');
更改为回声或打印。
噢,我在输出中添加了一些换行符,因为我确信你不需要一条长长的路线。
“此时做一个”SELECT * FROM $表“并处理数据到文件。“ – antonioj1015 2013-05-10 15:34:09
问题/评论是?你需要关于如何做选择查询和输出它的代码? – 2013-05-10 15:37:01
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
该片段从http://dev.mysql.com/doc/refman/5.6/en/select-into.html
SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
采取无法导出,在短短一个CSV文件中的所有表数据。一个表格用于一个文件。或者你可以建立一个查询并将结果写入一个文件中并用数据分隔; – Nagasaki 2013-05-10 14:59:59
我不能这样做︰SELECT user。*,history。*,start_test。*,final_test。* INTO OUTFILE FROM user,history,start_test,final_test – antonioj1015 2013-05-10 15:11:41
我不认为INTO OUTFILE将起作用,您可以创建一个在csv文件中查看并转储此视图。你需要在你的SQL查询中加入你的表格 – Nagasaki 2013-05-10 15:17:28