php中的网页不可用错误

时间:2014-12-15 11:50:30

标签: php codeigniter import fgetcsv

我有以下功能导入数据库中的订阅者列表,当订阅者列表小于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;
}

1 个答案:

答案 0 :(得分:0)

$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 []。循环结束后,它将触发查询。只需使它适合您的脚本。那里还有很多垃圾代码,请确保在现场网站上使用之前将其清理干净^^