Php 使用数据库实用程序类将数据从Codeigniter批量导出到CSV

Php 使用数据库实用程序类将数据从Codeigniter批量导出到CSV,php,database,codeigniter,datatable,codeigniter-2,Php,Database,Codeigniter,Datatable,Codeigniter 2,这是我的密码: function export_csv() { $st = $this->input->get('st'); //Start Date $en = $this->input->get('en'); //End Date $sTable = 'TABLE_NAME'; $this->load->dbutil(); $aColumns = array('tempdisplayid AS ucid','uui','campaign_n

这是我的密码:

function export_csv()
{
$st = $this->input->get('st');   //Start Date 
$en = $this->input->get('en');   //End Date

$sTable = 'TABLE_NAME';

$this->load->dbutil();

$aColumns = array('tempdisplayid AS ucid','uui','campaign_name','location','caller_id','skill','calltime','answertime','TIMEDIFF(answertime,calltime) as timetoanswer','endtime','talktime','duration','fallback_rule','dialed_number','type','agent','agent_did','disposition','status','hangup_by','transfer','transfer_to','comments','dial_status','customer_status','agent_status','audio','AgentStatus','CustomerStatus','user_response');

$this->db->select('SQL_CALC_FOUND_ROWS '.str_replace(' , ', ' ', implode(', ', $aColumns)), false);

$query = $this->db->get_where($sTable, array('date(calltime) >=' =>$st,'date(calltime) <=' =>$en));

$new_report = $this->dbutil->csv_from_result($query);

write_file('/csv/records-'.$st.'to'.$en.'.csv', $new_report);

$this->load->helper('download'); 

force_download('records-'.$st.'to'.$en.'.csv', $new_report); 

}
函数导出\u csv()
{
$st=$this->input->get('st');//开始日期
$en=$this->input->get('en');//结束日期
$sTable='TABLE_NAME';
$this->load->dbutil();
$aColumns=array('tempdisplayid为ucid'、'uui'、'campaign\u name'、'location'、'caller\u id'、'skill'、'calltime'、'answertime'、'TIMEDIFF(answertime、calltime))等作为回答时间、结束时间、通话时间、持续时间、回退规则、拨号号码、类型、代理、代理、处理、状态、挂断人、转移、转移到、评论、拨号状态、客户状态、代理状态、音频、代理状态、客户状态、用户响应);
$this->db->select('SQL_CALC_find_ROWS'.str_replace(',','',introde(',',$aColumns)),false);

$query=$this->db->get_where($sTable,array('date(calltime)>='=>$st,'date(calltime)我认为codeignator的
最大执行时间
有问题

您可以使用下面的代码来增加它

转到文件

system/core/CodeIgniter.php
Ans搜索
set\u time\u limit
您可以在下面找到代码。在这里您可以增加您的时间

if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0)
{
    @set_time_limit(300);// increase according to your requirmrnt
}
下载此文件并放入
system/helpers/

最后像这样创建csv

$this->db->select('*'); 
$query = $this->db->get('your_table');
$this->load->helper('csv');
query_to_csv($query, TRUE, 'filename.csv');

尝试创建csv的zip文件,然后下载..您可以使用codeigniter的编码类在这里检查它@NishantSolanki-不工作either@kiran你所说的死链接是什么意思?你犯了什么错误???@NishantSolanki-没有错误,只有空白白色page@Kiranarya您是否尝试过将数据限制在10 MB CSV和24000条记录(如果有效)s我的代码运行良好,但不超过这个。试试这个,让我知道死链接的含义?尝试增加内存,死链接意味着什么都并没有,只是白色空白页面我增加了最大执行时间和内存限制。但页面从最后4-5分钟开始加载。我想它很有希望在这一天结束时我会得到我的CSV file@set_time_limit(1000);@set_time_limit(10000);但仍然是白色空白的page300表示5分钟。检查此项…如果不想超时页面,则应使用
set_time_limit(0);
。感谢@NishantSolanki提供的链接,在几秒钟或几分钟后就有点混乱,现在已清除
$this->db->select('*'); 
$query = $this->db->get('your_table');
$this->load->helper('csv');
query_to_csv($query, TRUE, 'filename.csv');