1
<?php
2
/**
3
* mysql查询类
4
*
5
*/
6
class dbQuery {
7
/**
8
* 查询总次数
9
*
10
* @var int
11
*/
12
var $querynum = 0;
13
/**
14
* 连接句柄
15
*
16
* @var object
17
*/
18
var $link;
19
20
/**
21
* 构造函数
22
*
23
* @param string $dbhost 主机名
24
* @param string $dbuser 用户
25
* @param string $dbpw 密码
26
* @param string $dbname 数据库名
27
* @param int $pconnect 是否持续连接
28
*/
29
function dbQuery($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {
30
if($pconnect) {
31
if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {
32
$this->halt('Can not connect to MySQL server');
33
}
34
} else {
35
if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) {
36
$this->halt('Can not connect to MySQL server');
37
}
38
}
39
if($this->version() > '4.1') {
40
global $dbcharset;
41
if($dbcharset) {
42
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);
43
}
44
45
if($this->version() > '5.0.1') {
46
mysql_query("SET sql_mode=''", $this->link);
47
}
48
}
49
50
if($dbname) {
51
mysql_select_db($dbname, $this->link);
52
}
53
54
}
55
/**
56
* 选择数据库
57
*
58
* @param string $dbname
59
* @return
60
*/
61
function select_db($dbname) {
62
return mysql_select_db($dbname, $this->link);
63
}
64
/**
65
* 取出结果集中一条记录
66
*
67
* @param object $query
68
* @param int $result_type
69
* @return array
70
*/
71
function fetch_array($query, $result_type = MYSQL_ASSOC) {
72
return mysql_fetch_array($query, $result_type);
73
}
74
75
/**
76
* 查询SQL
77
*
78
* @param string $sql
79
* @param string $type
80
* @return object
81
*/
82
function query($sql, $type = '') {
83
84
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
85
'mysql_unbuffered_query' : 'mysql_query';
86
if(!($query = $func($sql, $this->link)) && $type != 'SILENT') {
87
$this->halt('MySQL Query Error', $sql);
88
}
89
90
$this->querynum++;
91
return $query;
92
}
93
/**
94
* 取影响条数
95
*
96
* @return int
97
*/
98
function affected_rows() {
99
return mysql_affected_rows($this->link);
100
}
101
/**
102
* 返回错误信息
103
*
104
* @return array
105
*/
106
function error() {
107
return (($this->link) ? mysql_error($this->link) : mysql_error());
108
}
109
/**
110
* 返回错误代码
111
*
112
* @return int
113
*/
114
function errno() {
115
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
116
}
117
/**
118
* 返回查询结果
119
*
120
* @param object $query
121
* @param string $row
122
* @return mixed
123
*/
124
function result($query, $row) {
125
$query = @mysql_result($query, $row);
126
return $query;
127
}
128
/**
129
* 结果条数
130
*
131
* @param object $query
132
* @return int
133
*/
134
function num_rows($query) {
135
$query = mysql_num_rows($query);
136
return $query;
137
}
138
/**
139
* 取字段总数
140
*
141
* @param object $query
142
* @return int
143
*/
144
function num_fields($query) {
145
return mysql_num_fields($query);
146
}
147
/**
148
* 释放结果集
149
*
150
* @param object $query
151
* @return bool
152
*/
153
function free_result($query) {
154
return mysql_free_result($query);
155
}
156
/**
157
* 返回自增ID
158
*
159
* @return int
160
*/
161
function insert_id() {
162
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
163
}
164
/**
165
* 从结果集中取得一行作为枚举数组
166
*
167
* @param object $query
168
* @return array
169
*/
170
function fetch_row($query) {
171
$query = mysql_fetch_row($query);
172
return $query;
173
}
174
/**
175
* 从结果集中取得列信息并作为对象返回
176
*
177
* @param object $query
178
* @return object
179
*/
180
function fetch_fields($query) {
181
return mysql_fetch_field($query);
182
}
183
/**
184
* 返回mysql版本
185
*
186
* @return string
187
*/
188
function version() {
189
return mysql_get_server_info($this->link);
190
}
191
/**
192
* 关闭连接
193
*
194
* @return bool
195
*/
196
function close() {
197
return mysql_close($this->link);
198
}
199
/**
200
* 输出错误信息
201
*
202
* @param string $message
203
* @param string $sql
204
*/
205
function halt($message = '', $sql = '') {
206
echo $message . ' ' . $sql;
207
exit;
208
209
}
210
}
211
212
?>
<?php2
/**3
* mysql查询类4
*5
*/6
class dbQuery {7
/**8
* 查询总次数9
*10
* @var int11
*/12
var $querynum = 0;13
/**14
* 连接句柄15
*16
* @var object17
*/18
var $link;19
20
/**21
* 构造函数22
*23
* @param string $dbhost 主机名24
* @param string $dbuser 用户25
* @param string $dbpw 密码26
* @param string $dbname 数据库名27
* @param int $pconnect 是否持续连接28
*/29
function dbQuery($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {30
if($pconnect) {31
if(!$this->link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) {32
$this->halt('Can not connect to MySQL server');33
}34
} else {35
if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) {36
$this->halt('Can not connect to MySQL server');37
}38
}39
if($this->version() > '4.1') {40
global $dbcharset;41
if($dbcharset) {42
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->link);43
}44

45
if($this->version() > '5.0.1') {46
mysql_query("SET sql_mode=''", $this->link);47
}48
}49

50
if($dbname) {51
mysql_select_db($dbname, $this->link);52
}53

54
}55
/**56
* 选择数据库57
*58
* @param string $dbname59
* @return 60
*/61
function select_db($dbname) {62
return mysql_select_db($dbname, $this->link);63
}64
/**65
* 取出结果集中一条记录66
*67
* @param object $query68
* @param int $result_type69
* @return array70
*/71
function fetch_array($query, $result_type = MYSQL_ASSOC) {72
return mysql_fetch_array($query, $result_type);73
}74
75
/**76
* 查询SQL77
*78
* @param string $sql79
* @param string $type80
* @return object81
*/82
function query($sql, $type = '') {83
84
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?85
'mysql_unbuffered_query' : 'mysql_query';86
if(!($query = $func($sql, $this->link)) && $type != 'SILENT') {87
$this->halt('MySQL Query Error', $sql);88
}89

90
$this->querynum++;91
return $query;92
}93
/**94
* 取影响条数95
*96
* @return int97
*/98
function affected_rows() {99
return mysql_affected_rows($this->link);100
}101
/**102
* 返回错误信息103
*104
* @return array105
*/106
function error() {107
return (($this->link) ? mysql_error($this->link) : mysql_error());108
}109
/**110
* 返回错误代码111
*112
* @return int113
*/114
function errno() {115
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());116
}117
/**118
* 返回查询结果119
*120
* @param object $query121
* @param string $row122
* @return mixed123
*/124
function result($query, $row) {125
$query = @mysql_result($query, $row);126
return $query;127
}128
/**129
* 结果条数130
*131
* @param object $query132
* @return int133
*/134
function num_rows($query) {135
$query = mysql_num_rows($query);136
return $query;137
}138
/**139
* 取字段总数140
*141
* @param object $query142
* @return int143
*/144
function num_fields($query) {145
return mysql_num_fields($query);146
}147
/**148
* 释放结果集149
*150
* @param object $query151
* @return bool152
*/153
function free_result($query) {154
return mysql_free_result($query);155
}156
/**157
* 返回自增ID158
*159
* @return int160
*/161
function insert_id() {162
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);163
}164
/**165
* 从结果集中取得一行作为枚举数组166
*167
* @param object $query168
* @return array169
*/170
function fetch_row($query) {171
$query = mysql_fetch_row($query);172
return $query;173
}174
/**175
* 从结果集中取得列信息并作为对象返回176
*177
* @param object $query178
* @return object179
*/180
function fetch_fields($query) {181
return mysql_fetch_field($query);182
}183
/**184
* 返回mysql版本185
*186
* @return string187
*/188
function version() {189
return mysql_get_server_info($this->link);190
}191
/**192
* 关闭连接193
*194
* @return bool195
*/196
function close() {197
return mysql_close($this->link);198
}199
/**200
* 输出错误信息201
*202
* @param string $message203
* @param string $sql204
*/205
function halt($message = '', $sql = '') {206
echo $message . ' ' . $sql;207
exit;208

209
}210
}211

212
?>
浙公网安备 33010602011771号