Home  >  Article  >  Backend Development  >  php实现文本数据导入SQL SERVER_PHP教程

php实现文本数据导入SQL SERVER_PHP教程

WBOY
WBOYOriginal
2016-07-13 09:53:54879browse

php实现文本数据导入SQL SERVER

   php将文本文件导入mysql我们经常遇到,但是如果是导入到sqlserver又应该如何操作呢,下面就给大家分享一下本人的操作方法,感觉效率还不错,这里推荐给大家。

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

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

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

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

set_time_limit(0);

ignore_user_abort(true);

include('sgk.php');

echo "

";

?>

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"]

{

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

$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");

}

?>

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1000067.htmlTechArticlephp实现文本数据导入SQL SERVER php将文本文件导入mysql我们经常遇到,但是如果是导入到sqlserver又应该如何操作呢,下面就给大家分享一下本人...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn