php实现文本数据导入SQL SERVER
我测试是支持的CSV,SQL,TXT
其实其他格式也可以,只不过我用不到而已
速度是差不多是每秒一万吧
<?php
set_time_limit(0);
ignore_user_abort(true);
include('sgk.php');
echo"<br><br>";
?>
<?php
functionarray_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)){
returnmb_convert_encoding($data,$output,$encoded);
}
else{
foreach($dataas$key=>$val){
if(is_array($val)){
$data[$key]=array_iconv($val,$input,$output);
}else{
$data[$key]=mb_convert_encoding($data,$output,$encoded);
}
}
return$data;
}
}
functionmicrotime_float(){
returnmicrotime(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"ReturnCode:".$_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="INSERTINTO[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-dh: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="INSERTINTO[dbo].[own_user_data1]([Name],[Context],[md5],[data])VALUES";
}
$num++;
$total++;
}
}
fclose($handle);
$sql1="INSERTINTO[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");
}
?>
以上所述就是本文的全部内容了,希望大家能够喜欢。