使用PHP、Zend将表数据导出为CSV


Export table data to CSV with PHP, Zend

我有MySql数据库和网站,在web中我在表中显示数据库值。我让CSV导出指定的数据库模型(表)。

  `$this->view->table = $model->info('name');
    $is_csv = $this->_getParam('csv');
    if ($this->_request->isPost() && $is_csv) {
        $file1 = 'Baudų sąrašas '.$date_from.' iki '.$date_to.'.csv';
        $fp = fopen('php://output', 'w+');
        if ($date_from) {
            $select->where("date >= ?", $date_from . ' 00:00:00');
        }
        if ($date_to) {
            $select->where("date <= ?", $date_to . ' 23:59:59');
        }
            $data = $model->fetchAll($select);
        foreach ($data as $fields) {
            fputcsv($fp, $fields->toArray());
        }
        fclose($fp);
        if ($file1 !== false) {
            header('Content-type: text/plain');
            header('Content-Disposition: attachment; filename="' . $file1 . '"');
            exit;
        }
    }`

以及称之为的HTML

       form method="post">
            <div class="control-group pull-right">
            <input type="hidden" name="table" value="<?php echo $this->table ?>" />
            <button type="submit" class="btn" name="csv" value="csv"><?php echo Core_Locale::translate('CSV')?></button>
                </div>
        </form>

现在我不想从数据库中获取,而是从具有数据库Join的函数中获取,但当我使用return $this->getAdapter()->fetchAll($select);它给出了非对象的错误,当我写return $this->fetchAll($select);时,它给出了来自函数的数据库数据。。。有人知道怎么做吗?

这不是你问题的确切答案,但你为什么不试试这个呢。。

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

复制自:使用php将mysql表列表从mysql导出到csv文件