【问题标题】:How to export mysql to csv include all the table?如何将mysql导出到csv包含所有表?
【发布时间】:2014-06-16 13:41:07
【问题描述】:

以下代码有助于将 特定表从 mysql 导出为 CSV 格式。 但我需要有助于从 mysql 导出到 csv 所有表的代码。请有代码的人。请分享一下

 <?php
    $conn = mysql_connect('localhost', 'xxxx', 'yyyy') or die(mysql_error());
    mysql_select_db('zzzz', $conn) or die(mysql_error($conn));

    $query = sprintf('SELECT * FROM TABLENAME');
    $result = mysql_query($query, $conn) or die(mysql_error($conn));      

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

    $row = mysql_fetch_assoc($result);
    if ($row) {
        echocsv(array_keys($row));
    }     

    while ($row) {
        echocsv($row);
        $row = mysql_fetch_assoc($result);
    }

    function echocsv($fields)
    {
        $separator = '';
        foreach ($fields as $field) {
            if (preg_match('/\\r|\\n|,|"/', $field)) {
                $field = '"' . str_replace('"', '""', $field) . '"';
            }
            echo $separator . $field;
            $separator = ',';
        }
        echo "\r\n";
    }
 ?>

【问题讨论】:

  • 你考虑过INFORMATION_SCHEMA.TABLES的循环吗?

标签: php mysql sql csv export-to-csv


【解决方案1】:

使用此代码SHOW TABLES 查询返回所选数据库中的所有表。

$tablesRes = mysql_query('SHOW TABLES',$conn);
while($row = mysql_fetch_row($tablesRes)){
    $tables[] = $row[0];
}

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

foreach($tables as $table){
    $query = 'SELECT * FROM '.$table;
    $result = mysql_query($query, $conn) or die(mysql_error($conn));
    //your csv code here
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-11
    • 2021-12-02
    • 1970-01-01
    • 2015-02-02
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多