php实现文本数据导入SQL SERVER
php  /  管理员 发布于 7年前   199
我测试是支持的CSV,SQL,TXT 其实其他格式也可以,只不过我用不到而已 速度是差不多是每秒一万吧 以上所述就是本文的全部内容了,希望大家能够喜欢。
";?>$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"] . "
"; } else { $name=$_FILES["file"]["name"]; $name=iconv('utf-8', 'GB2312//IGNORE', $_FILES['file']['name']); echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1048576) . " Mb
"; $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 "
开始自动处理文件
"; $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"); }?>您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号