将结果保存在PHP的csv文件中

时间:2015-11-29 19:13:14

标签: php csv

我正在尝试从表中获取所有数据并保存到 csv 文件中。

我没有收到任何错误,但它也没有创建带有结果的csv文件。

但是当我看到输出时,我看到结果存在,但为什么csv文件没有为结果创建!!

PHP代码 -

        $result = mysql_query('SELECT * FROM `info_contact`');

        if (!$result){
            die('Couldn\'t fetch records');
        }

        $num_fields = mysql_num_fields($result);

        $headers = array();
        for ($i = 0; $i < $num_fields; $i++) {
            $headers[] = mysql_field_name($result, $i);
        }
        $fp = fopen('php://output', 'w');
        if ($fp && $result) {
            header('Content-Type: text/csv');
            header('Content-Disposition: attachment; filename="myCsvFile.csv"');
            header('Pragma: no-cache');
            header('Expires: 0');
            fputcsv($fp, $headers);
            while ($row = mysql_fetch_row($result)) {
                fputcsv($fp, array_values($row));
            }
            die;
        }

输出 ---

id,name,email,message,content,contactTime

34,chris,christoferhansen@gmail.com,"Hi Chris","C:fakepathCoding style.pdf","2015-11-29 19:49:02"

35,Hansen,hansen@yahoo.com,ad,,"2015-11-29 19:52:20"

我无法创建cvs文件的错误在哪里!

任何人都可以帮我这个吗

1 个答案:

答案 0 :(得分:2)

您编写脚本以创建csv以供下载。如果您已将其写入服务器上的文件而不是将$fp = fopen('php://output', 'w');替换为$fp = fopen('path/to/file.csv', 'w');并删除所有header次来电