将MySql表导出为CSV?

时间:2012-01-27 21:34:29

标签: php mysql csv

所以,我已经在堆栈和谷歌以及我能想到的任何地方搜索了大部分答案。确实有很多答案,但都没有我需要的结构。

我的代码看起来像这样:

$sql   = "SELECT * FROM users WHERE user_level = '$level' ORDER BY user_username DESC";
    if ($stmt = $this->connect->prepare($sql)) {
        $stmt->bind_result($id);
        $stmt->execute();
        while ($row = $stmt->fetch()) {
            $stmt->bind_result($id);
            $users[] = $id;
        }
        $stmt->close();
        $length[] = sizeof($users);
    } else {
        $error              = true;
        $message['error']   = true;
        $message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE;
        return json_encode($message);
    }

我在我的所有代码中使用mysqlistmt,所以我想一直保持这样。

所以,据我所知,我没有CSV文件,我有我的动作按钮来下载它。但问题是我的操作按钮是表单的一部分,所以我想在页面上我不是$_GET,而是我有CSV $_POST

我的问题是,如何遍历所有数据库(这需要依赖于列,级别)并将所有数据组织在CSV文件中而不是下载它?但这需要作为我的功能结构,我不想每次使用db_query("SELECT * FROM {loreal_salons}");或其他类似的。{/ p>

2 个答案:

答案 0 :(得分:1)

使用以下内容:

// Setup the headers to force download of CSV
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");


// loop your records here and output as comma separated
echo $row['col1'].",".$row['col3'].",".$row['col3']."\n";

答案 1 :(得分:0)

如果你想循环遍历所有数据库,我认为你想要做的关键是:

显示表格 - http://dev.mysql.com/doc/refman/4.1/en/show-tables.html ..循环所有表格

显示专栏 - http://dev.mysql.com/doc/refman/5.0/en/show-columns.html ..循环到特定表的所有列