php实现文本数据导入SQL SERVER

我测试是支持的CSV,SQL,TXT

其实其他格式也可以,只不过我用不到而已

速度是差不多是每秒一万吧

  <?php  set_time_limit(0);  ignore_user_abort(true);  include('sgk.php');  echo "<br><br>";  ?>  <?php  function array_iconv($data,$output = 'GBK') {   $encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');   $encoded = mb_detect_encoding($data, $encode_arr);//自动判断编码   if (!is_array($data)) {   return mb_convert_encoding($data, $output, $encoded);   }   else {   foreach ($data as $key=>$val) {    if(is_array($val)) {    $data[$key] = array_iconv($val, $input, $output);    } else {    $data[$key] = mb_convert_encoding($data, $output, $encoded);    }   }   return $data;   }  }  function microtime_float(){     return microtime(true);   }   if ($_SESSION['id']<>''){  if (@$_POST["submit"]<>""){  if ((($_FILES["file"]["type"] == "text/plain")  || ($_FILES["file"]["type"] == "application/vnd.ms-excel") || ($_FILES["file"]["type"] == "application/octet-stream")  || ($_FILES["file"]["type"] == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))  && ($_FILES["file"]["size"] < 198102805))   {   if ($_FILES["file"]["error"] > 0)    {    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";    }   else    {    $name=$_FILES["file"]["name"];    $name=iconv('utf-8', 'GB2312//IGNORE', $_FILES['file']['name']);     echo "Upload: " . $_FILES["file"]["name"] . "<br />";    echo "Size: " . ($_FILES["file"]["size"] / 1048576) . " Mb<br />";    $exit= pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);    $exit='.' .$exit;         if ($exit==".asp" or $exit==".php" or $exit==".jsp" OR $exit==".aspx"){    echo "我擦,你想做什么?";    exit;    }    $size=filesize($_FILES["file"]["tmp_name"]);     $_FILES["file"]["name"]=md5($_FILES["file"]["name"].$size).$exit;    if (file_exists("uploadhehe/" . $_FILES["file"]["name"]))     {     echo $_FILES["file"]["name"] . " 已经存在 ";     }    else     {     move_uploaded_file($_FILES["file"]["tmp_name"],     "uploadhehe/" . $_FILES["file"]["name"]);     echo "<br>开始自动处理文件<br>";     $begin = microtime_float();  $file="uploadhehe/" . $_FILES["file"]["name"];  $handle = @fopen($file, "r");  //$handle=array_iconv('utf-8','gbk',$handle);  $total=0;  $over=0;  if ($handle) {    $sql="INSERT INTO [dbo].[own_user_data1] ([Name],[Context],[md5],[data]) VALUES";    $num=0;    $_FILES['file']['name']=iconv('utf-8', 'GB2312//IGNORE', $_FILES['file']['name']);     while (!feof($handle)) {      $buffer = fgets($handle, 2000);      $buffer=str_replace("n", "", $buffer);      $line_array=explode("rn", $buffer);      $Context=htmlspecialchars(addslashes($line_array[0]));      $Context=str_replace("'", ',', $Context);      $Context=str_replace('"', ',', $Context);      $Context=array_iconv($Context);      $date=date('y-m-d h:i:s',time());      if($num<999){      $sql.="('{$name}','{$Context}','{$_FILES['file']['name']}','{$date}'),";       }else{      $sql.="('{$name}','{$Context}','{$_FILES['file']['name']}','{$date}')";       $a=sqlsrv_query($conn,$sql);      // if( $a === false ) {     // die( print_r( sqlsrv_errors(), true));  // }      $num=0;      $sql="INSERT INTO [dbo].[own_user_data1] ([Name],[Context],[md5],[data]) VALUES";         }         $num++;       $total++;        }   }   fclose($handle);  $sql1="INSERT INTO [dbo].[own_user_info] ([uid],[md5],[date],[name],[size],[gold]) VALUES ('{$_SESSION["id"]}','{$_FILES["file"]["name"]}','{$date}','{$name}','{$total}','1')";  sqlsrv_query($conn,$sql1);  if( $a === false ) {     die( print_r( sqlsrv_errors(), true));  }  //处理没有插入到数据库的记录  if(substr($sql, strlen($sql)-1,1)==","){    $sql=substr($sql, 0,strlen($sql)-1);    sqlsrv_query($conn,$sql);  }  $end = microtime_float();  $time = $end-$begin;  echo "共导入{$total}条记录,耗时{$time}秒";        }    }   }  else   {   echo "上传失败!";      }  }  }else{   header("Location: login.php");   }  ?>  

以上所述就是本文的全部内容了,希望大家能够喜欢。

php实现文本数据导入SQL SERVER

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论