2014-02-27 119 views
1

我不知道是否有人可以真正向我展示一个PHP代码示例,我如何将大约50个表中的MySQL数据库导出到CSV文件。我的数据库名称是“样本”,我在这个数据库下有大约49个表格。我希望这个数据库下的每个表(有大约20,00行)被导出到一个csv文件。从mysql导出mysql列表到csv文件使用php

谢谢你,并期待着任何帮助。对不起,我很新的PHP。

+0

你使用的东西,像phpMyAdmin或者其他一些GUI来进行数据库管理? –

回答

1

如果你有机会到MySQL服务器,你可以使用SELECT INTO OUTFILE做这个最适合你:

SELECT * FROM my_table 
    INTO OUTFILE 'my_table.csv' 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    ESCAPED BY '\\' 
    LINES TERMINATED BY '\n'; 

你可能想,如果你使用的是Windows拥有的\r\n一个行分隔符。

如果您没有指定生成的CSV文件的完整路径,它将进入MySQL服务器的数据目录,就在表旁边。

0

这是如何直接从mysql终端导出1个表。我刚刚使用的tmp目录作为一个例子给你买可以将路径更改为你喜欢的东西:

select * from product where condition1 order by condition2 desc INTO OUTFILE '/tmp/myfile.csv' FIELDS TERMINATED BY ',' ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"'; 

或PHP和mysqli的:

<?php 
$con=mysqli_connect("example.com","uname","password","my_db"); 
// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$result = mysqli_query($con," select * from product where condition1 order by condition2 desc INTO OUTFILE '/tmp/myfile.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';"); 
+0

你的字符串中的双引号不会被转义吗? – tadman

+0

斑点tadman :) – Volterony

0
Try... 
Create csv file. 
<?php 
mysql_connect('localhost', 'root', ''); 
mysql_select_db('mydb'); 
$qry = mysql_query("SELECT * FROM tablename"); 
$data = ""; 
while($row = mysql_fetch_array($qry)) { 
    $data .= $row['field1'].",".$row['field2'].",".$row['field3'].",".$row['field4']."\n"; 
} 
$file = 'file.csv'; 
file_put_contents($file, $data); 
?>