php - 使用 csv_from_result 在 CSV 导出中返回字符串而不是数据库条目

标签 php mysql codeigniter csv

我正在使用 codeigniter 从数据库条目生成 CSV。以下代码有效

$this->load->dbutil();
$csv = $this->dbutil->csv_from_result($stories);
echo $csv;

$name = 'data.csv';

// Build the headers to push out the file properly.
header('Pragma: public');     // required
header('Expires: 0');         // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Disposition: attachment; filename="'.basename($name).'"');  // Add the file name
header('Content-Transfer-Encoding: binary');
header('Connection: close');
exit();

force_download($name, $csv);
fclose($fp);

不过,我有两个问题。

1) 为什么我的代码依赖于回显 $CSV?如果我注释掉这一行,它会返回一个空白的 cvs。

2) 如何获取 $CSV 变量并对其进行编辑。目前,我的数据库将一些信息存储为整数, Controller 在站点正常运行时将其转换为字符串,即我可能将数据库中的优先级存储为 0,1,2,但在 View 中我显示紧急,高,低。我想在导出的 CSV 中而不是数据库条目中显示这些字符串。我对如何做到这一点有点困惑。我正在考虑使用 switch 语句的循环,但我真的不知道如何与 $CSV 变量交互 - 或者我应该在数据仍在对象中而不是 csv_from_result() 的模型中执行此操作

最佳答案

1) $csv 包含所有信息,它是构成文件的所有内容。这就是为什么如果您不回显它,您只会得到一个空白的 CSV 文件。

2) 您不想编辑 $csv,该变量包含一切准备就绪的内容。您想要编辑 $stories,从上面粘贴的内容来看,它包含数据库中的所有内容,然后通过 $this->dbutil->csv_from_result 转换为 CSV >。查看您的代码并找到 $stories 的加载位置,然后对其进行修改。

关于php - 使用 csv_from_result 在 CSV 导出中返回字符串而不是数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22533699/

相关文章:

如果字段名是 0,PHP Mysql_fetch_array 失败

php - "slash before every quote"问题

css - 如何将 CSS 加载到 CodeIgniter 中

php - 如何防止Wordpress文本区域中的换行符被删除?

php - 在 Woocommerce 的 PHP 代码中插入类

php - 使用php mysql添加登录时间

java - 我不断收到错误 : com. mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column '. . . . ' in 'field list'

Codeigniter分页错误404

javascript - codeigniter 中的 Flipclock.js

javascript - Ajax 请求加载时间过长