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');