将每个MySQL表行导出到不同的.csv文件中

时间:2017-11-15 12:56:27

标签: php mysql csv

php文件中,从MySQL表中选择文件值并使用while循环打印

<?php
$result = $conn->query('SELECT Column_1,Column_2,Column_3  FROM `dbtest`');

while($row = $result->fetch_assoc()) {?>
Header 
<?php
print_r($row["Column_1"]);
print_r($row["Column_2"]);  
print_r($row["Column_3"]); 
?>
Footer 
<?php  } ?> 

现在我正在尝试每次迭代生成单独的.csv文件。下面的代码有效,但将所有内容打印到一个文件中我试图将它放入while循环中,但它没有解决问题,只有第一次迭代被添加到.csv文件中。

<?php
 $fp = fopen('php://output', 'w');
    if ($fp && $result) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="file.csv"');
    while ($row = $result->fetch_array(MYSQLI_NUM)) {
        fputcsv($fp);
    }
    die;
}
?>

有人知道我在哪里错过了这一点吗?我只是开始并缺少一些理论。非常感谢所有可能的帮助。

循环

中的

UPDATE 文件创建

    <?php
    $result = $conn->query('SELECT Column_1,Column_2,Column_3  FROM `dbtest`');    
    $x = 1;                  
    while($row = $result->fetch_assoc()) {?>
    Header 
    <?php
    print_r($row["Column_1"]);
    print_r($row["Column_2"]);  
    print_r($row["Column_3"]); 
    ?>
    Footer 
    <?php 

    $fp = fopen('php://output', 'w');
    if ($fp && $result) {
        header('Content-Type: text/csv');
        header('Content-Disposition: attachment; filename=export'.$x.'.ldt');
        while ($row = $result->fetch_array(MYSQLI_NUM)) {
            fputcsv($fp);
        }
        die;
    }        
    $x++;
    } 
?>

0 个答案:

没有答案