-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsqlsrv.php
More file actions
105 lines (98 loc) · 2.74 KB
/
Copy pathsqlsrv.php
File metadata and controls
105 lines (98 loc) · 2.74 KB
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
<?php
/* (C)2006-2021 FoundPHP Framework.
* name: Database Object
* weburl: http://www.FoundPHP.com
* mail: master@FoundPHP.com
* author: 孟大川
* version: v3.21311
* start: 2006-05-24
* update: 2021-03-11
* payment: Free 免费
* This is not a freeware, use is subject to license terms.
* 此软件为授权使用软件,请参考软件协议。
* http://www.foundphp.com/?m=agreement
*/
Class Dirver_sqlsrv{
public $LinkID;
//连接数据库
function DBLink($dba=''){
$info = array("UID"=>$dba['dbuser'], "PWD"=>$dba['dbpass'],'CharacterSet' => "UTF-8");
if (!empty($dba['dbname'])){
$info["Database"] = $dba['dbname'];
}
$this->LinkID = sqlsrv_connect($dba['dbhost'].($dba['dbport']!=''?','.$dba['dbport']:''),$info);
$info = sqlsrv_errors();
if(!empty($info[1][2])){
if (strstr($info[1][2],'://')){
return 4;
}
}
if (!$this->LinkID){return 2;}
$this->charset = $dba['charset'];
$this->set_names= 0;
return $this->LinkID;
}
//查询语句
function query($query,$limit='') {
//检测如果有限制数据集则处理
if($limit>0){
$query = str_ireplace('select ','select TOP '.$limit.' ',$query);
}
//时间处理
if (stristr($query, "now()") !== FALSE){
$query = preg_replace("/(.*)\'now\(\)\'(.*)/is","\\1now()\\2",$query);
}
$query = str_replace('`','',$query);
//统计用途
if ($limit=='-1'){
$sql_query =sqlsrv_query($this->LinkID,$query,array(),array("Scrollable" => SQLSRV_CURSOR_KEYSET));
}else{
$sql_query =sqlsrv_query($this->LinkID,$query);
}
return array('query'=>$sql_query,'sql'=>$query);
}
//返回数组资料
function fetch_array($query) {
return sqlsrv_fetch_array($query,SQLSRV_FETCH_ASSOC);
}
//取得返回列的数目
function num_rows($query){
return sqlsrv_num_rows($query);
}
//返回最后一次使用 INSERT 指令的 ID
function insert_id(){
$sql = "select @@IDENTITY;";
$query = $this->query($sql);
$insert_id = (int)@current($this->fetch_array($query['query']));
return $insert_id;
}
//创建数据库
function create_db($dbname){
sqlsrv_query($this->LinkID,"CREATE DATABASE ".$dbname);
}
//列出数据库
function show_db(){
sqlsrv_query($this->LinkID,"SELECT * FROM sysdatabases");
}
//关闭当前数据库连接
function close(){
return @sqlsrv_close($this->LinkID);
}
//检测mysql版本
function version($types=0){
$sql = "select @@VERSION";
$query = $this->query($sql);
$version = @current($this->fetch_array($query['query']));
$version = substr($version,0,strrpos($version,' -'));//截取-之前的文字
if ($types==1){
$ver_exp= explode(' ',$version);
foreach($ver_exp AS $k=>$v) {
if (strlen((int)trim($v))==4){
return $v;
}
}
}
return $version;
}
}
?>