Массовый экспорт данных из Codeignitor в CSV с использованием класса Utility

Вот мой код:

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

За последние 30 дней зарегистрировано 64,145 записей. Когда я пытаюсь загрузить, ссылка становится мертвой. Есть ли другой способ массового экспорта неограниченной записи в csv .

Я тестировал этот код до 30000 после установки ini_set ('max_execution_time', 0); он отлично работает.

Все, кроме CSV, таких как xls, которые могут показывать объемные записи. Любая помощь.

Благодарю.

 // top of your controller ini_set('max_execution_time', 0); // Also you can increase memory ini_set('memory_limit','2048M'); 

Загрузите этот помощник и поместите его в system/helpers/

и, наконец, создать csv, как это

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

Я думаю, что есть проблема в max_execution_time кодеингатора

Вы можете увеличить его, используя приведенный ниже код

Перейти к файлу

 system/core/CodeIgniter.php 

Поиск set_time_limit для set_time_limit вы найдете ниже кода. Здесь вы можете усовершенствовать свое время

 if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0) { @set_time_limit(300);// increase according to your requirmrnt }