我已经制作了一些自定义模块,用于在drupal 7中将csv导入数据库,但是我遇到了一些错误
注意:未定义的偏移量:2 PDOException:SQLSTATE [22021]:字符不在指令集中:7错误:编码“UTF8”的无效字节序列:0x8d提示:如果字节序列与服务器预期的编码不匹配,也会发生此错误,该编码由“CLIENT_ENCODING”
这里是我的代码
if(isset($form_state['values']['csvupload'])) {
if($handle = fopen($form_state['values']['csvupload'],'r')) {
$btach['operations'][] = array('+importcsv_remember_filename', array($form_state['values']['csvupload']));
db_set_active('data7');
$line = fgetcsv($handle,4096);
while ($line = fgetcsv($handle,4095)) {
for($i = 0,$j = count($line); $i < $j; $i++) {
$insert_csv = array();
$insert_csv['id'] = $line[0];
$insert_csv['nama'] = $line[1];
$insert_csv['alamat'] = $line[2];
$insert_csv['fakultas'] = $line[3];
$insert_csv['pekerjaan'] = $line[4];
}
$i++;
$nid = db_insert('unikom')
->fields(array(
'id' => $insert_csv['id'],
'nama' => $insert_csv['nama'],
'alamat' => $insert_csv['alamat'],
'fakultas' => $insert_csv['fakultas'],
'pekerjaan' => $insert_csv['pekerjaan'],
))
->execute();
$batch['operations'][] = array('_importcsv_import_line',array(array_map('base64_decode',$line)));
}
fclose($handle);
$nid = drupal_set_message('success');
}
}
batch_set($batch);
db_set_active();