codeigniter — ошибка веб-страницы в переполнении стека

У меня есть следующая функция для импорта списка подписчиков в базу данных, это прекрасно работает, когда список подписчиков меньше 500, но есть более 500 записей, чем страница браузера, недоступная, но все списки подписчиков получают вставку.

Ниже приведен мой код импорта:

    function import_csv($csvfile,$databasetable,$uid) {
$CI =& get_instance();
$CI->session->unset_userdata('csv_import');

if(!file_exists($csvfile)) {
$CI->session->set_flashdata('error','File not found. Make sure you specified the correct path.\n');
return false;
}

$file = fopen($csvfile,"r");

if(!$file) {
$CI->session->set_flashdata('error','Error opening data file.');
return false;
}

$size = filesize($csvfile);

if(!$size) {
$CI->session->set_flashdata('error','File is empty.');
return false;
}

$i=1;
$queries="";
$insert_count=0;
while($row=fgetcsv($file)) {
$row[]=date('Y-m-d h:i:s');
$row[]='while list';
$row[]=$uid;
$linemysql = implode("','",$row);
$linemysql="'".$linemysql."'";
$query = "insert into ".$databasetable."(`name`, `lname`, `mobile`, `gender`, `dob`, `email`, `city`, `pin`, `address`, `marital_status`, `anniversary_date`,`added_on`,`status`,`uid`)
values($linemysql);";

$queries.=$query;
if(count($row) == 14 && $row[0]!='' && strlen($row[2]) == 10 && is_numeric($row[2])) {
if($CI->db->query($query)) {
$insert_count++;
$value=$CI->session->userdata('csv_import');
if($value=='') {
$value=$CI->db->insert_id();
}
else {
$value.=','.$CI->db->insert_id();
}
$CI->session->set_userdata('csv_import',$value);
}
}
$i++;
}
$CI->session->set_flashdata('success',$insert_count.' Subscriber added to your account');
return true;
}

-2

Решение

$query = "insert into ".$databasetable." (`name`, `lname`, `mobile`, `gender`, `dob`, `email`, `city`, `pin`, `address`, `marital_status`, `anniversary_date`,`added_on`,`status`,`uid`) VALUES ";
while ( $row = fgetcsv($file) ) {
query = query . " ( ". $row [0] .", ". .. .", ". .. ." ) ";
}
$CI->db->query ( $query );

Это создаст один массивный запрос, я не знаю ваших настроек из csv, поэтому я удалил поля с помощью ‘..’, вы должны добавить туда правильный $ row [] самостоятельно. После завершения цикла он запустит запрос. Просто сделайте это подходящим для вашего сценария. Там также было много мусорного кода, обязательно очистите его перед использованием на живом сайте ^^

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]