我具有导出选项,可以从数据库中导出所有表数据,将网站托管在服务器上后,它显示此错误:无法访问该网站。但是在本地尝试可以正常工作。相同的导出选项适用于另一个表,但不适用于此表。我要从表中导出的数据,该表有1000列。
我使用的是PHP excel库,我注释了标头行,因此它抛出了错误,因为允许的内存大小为33554432字节已用尽(试图分配1179648字节)。
这是我的控制器代码:
public function export()
{
require_once APPPATH.'third_party/PHPExcel.php';
$this->load->library('excel');
$this->load->library("excel");
$object = new PHPExcel();
$object->setActiveSheetIndex(0);
$table_columns = array("S_No","Category","Sub_Category","Store","Deal_type","Deal_title","Targer_url","Image_url","Image_alt_text", "Mrp_price", "Deal_price", "Offer_text", "Coupon_code","Short_description","Description","Start_date","Expiry_date","Position_number","New_launch","Current_status");
$column = 0;
foreach($table_columns as $field)
{
$object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
$column++;
}
$employee_data = $this->deals_model->get();
$excel_row = 2;
$i = 0;
foreach($employee_data as $row)
{
//$colIndex = PHPExcel_Cell::columnIndexFromString($column->getColumn());
$i++;
$object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $i);
$object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, $row->category_name);
$object->getActiveSheet()->setCellValueByColumnAndRow(2, $excel_row, $row->sub_category_name);
$object->getActiveSheet()->setCellValueByColumnAndRow(3, $excel_row, $row->store_name);
$object->getActiveSheet()->setCellValueByColumnAndRow(4, $excel_row, $row->deal_type_text);
$object->getActiveSheet()->setCellValueByColumnAndRow(5, $excel_row, $row->deal_title);
$object->getActiveSheet()->setCellValueByColumnAndRow(6, $excel_row, $row->target_url);
$object->getActiveSheet()->setCellValueByColumnAndRow(7, $excel_row, $row->image);
$object->getActiveSheet()->setCellValueByColumnAndRow(8, $excel_row, $row->image_alt_text);
$object->getActiveSheet()->setCellValueByColumnAndRow(9, $excel_row, $row->mrp_price);
$object->getActiveSheet()->setCellValueByColumnAndRow(10, $excel_row, $row->deal_price);
$object->getActiveSheet()->setCellValueByColumnAndRow(11, $excel_row, $row->offer_text);
$object->getActiveSheet()->setCellValueByColumnAndRow(12, $excel_row, $row->coupon_code);
$object->getActiveSheet()->setCellValueByColumnAndRow(13, $excel_row, $row->short_description);
$object->getActiveSheet()->setCellValueByColumnAndRow(14, $excel_row, $row->description);
$object->getActiveSheet()->setCellValueByColumnAndRow(15, $excel_row, $row->start_date_time);
$object->getActiveSheet()->setCellValueByColumnAndRow(16, $excel_row, $row->expiry_date_time);
$object->getActiveSheet()->setCellValueByColumnAndRow(17, $excel_row, $row->position_number);
$object->getActiveSheet()->setCellValueByColumnAndRow(18, $excel_row, $row->is_new_launch);
$object->getActiveSheet()->setCellValueByColumnAndRow(19, $excel_row, $row->current_status);
$excel_row++;
}
$object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Deals_' . date('Y_m_d_Hi') . '.xls"');
$object_writer->save('php://output');
}
我解决了这个问题,在代码中添加了这一行:
ini_set('memory_limit', '2048M');