나는 데이터베이스에서 구독자 목록을 가져 오는 다음과 같은 기능이 있습니다. 구독자 목록이 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;
}
$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 []를 직접 추가해야합니다. 루프가 완료되면 쿼리가 실행됩니다. 스크립트에 적합하게 만드십시오. 거기에 쓰레기 코드도 많았으니, 라이브 웹 사이트에서 사용하기 전에 반드시 청소 해주세요 ^^
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다