首页 > 开发 > PHP > 正文

php实现文本数据导入SQL SERVER

2024-05-04 22:36:58
字体:
来源:转载
供稿:网友

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

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

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

<?phpset_time_limit(0);ignore_user_abort(true);include('sgk.php');echo "<br><br>";?><?phpfunction 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("/r/n", $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"); }?>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表