9个月前 (06-21)  技术文档 |   抢沙发 下载次数 74 
文章评分 0 次,平均分 0.0

csv文件一键导入数据到mysql数据库的详细流程通过php中系统函数fgetcsv()一行行的去解析csv中的文件,并赋值给数组中,然后导入到数据库。

fgetcsv('文件名','当前字段的字符串最大的长度')

从文件指针中读入一行并解析 CSV 字段,如果读取错误或者到文件末尾返回FALSE。

示例代码:

  1. <?php
  2.     //解析csv函数,传入文件指针
  3.     function input_csv($handle) {
  4.         //定义数据数组
  5.         $out = array ();
  6.         //从一行中的第一列
  7.         $n = 0;
  8.         //进行数据遍历,如果这一行有数据就进行数据读取
  9.         while ($data = fgetcsv($handle, 10000)) {
  10.             //获取一行书中的总列数
  11.             $num = count($data);
  12.             //循环获取一行中的每个列的值并赋值给数据组
  13.             for ($i = 0; $i < $num; $i++) {
  14.                 $out[$n][$i] = $data[$i];
  15.             }
  16.             $n++;
  17.         }
  18.         //返回所有读取到的数据数组
  19.         return $out;
  20.     }
  21.  
  22.     //接收通过form表单提交过来的文件
  23.     $filename = $_FILES['file']['tmp_name'];
  24.     //没有找到文件提示
  25.     if (empty ($filename)) {
  26.         echo '请选择要导入的CSV文件!';
  27.     } else {
  28.         //找到提交的文件进行提示
  29.         echo '正在读取文件,请稍等...';
  30.         //打开读取文件数据
  31.         $handle = fopen($filename, 'r');
  32.         //解析csv自定义的函数
  33.         $result = input_csv($handle);
  34.         //获取结果集数据数组文件总行数
  35.         $len_result = count($result);
  36.  
  37.         if ($len_result == 0) {
  38.             echo '没有任何数据!';
  39.         } else {
  40.             //循环获取各字段值
  41.             for ($i = 1; $i < $len_result; $i++) {
  42.                 //赋值给变量,如果为中文必须进行转码成数据库一致的编码
  43.                 $name = iconv('gb2312', 'utf-8', $result[$i][1]);
  44.                 $num = $result[$i][2];
  45.                 $fid = $result[$i][3];
  46.                 $status = iconv('gb2312', 'utf-8', $result[$i][4]);
  47.                 $details = iconv('gb2312', 'utf-8', $result[$i][5]);
  48.                 $info = iconv('gb2312', 'utf-8', $result[$i][6]);
  49.  
  50.                 //拼接数据的SQL语句
  51.                 $data_values .= "($status,'$name','$password','$authorize','$area','$province'),";
  52.  
  53.             }
  54.             //去掉最后一个逗号
  55.             $data_values = substr($data_values,0,-1);
  56.             //关闭指针文件
  57.             fclose($handle);
  58.             //插入数据表中
  59.             $sql = "insert into user(name,num,fid,status,details,info) values".$data_values;
  60.             $query = $nsodb->query($sql);
  61.             if ($query) {
  62.                 echo '导入成功!';
  63.             } else {
  64.                 echo '导入失败!';
  65.             }
  66.         }
  67.     }
  68. ?>
 

除特别注明外,本站所有资源内容均为创E资源原创(并非资源),转载请注明出处来自http://www.chuange8.cn/2018/06/21/csvdrmysql/

发表评论

暂无评论

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享