source: trunk/client/class/db/mysql4.php@ 421

Last change on this file since 421 was 232, checked in by luc, 10 years ago
  • inclusione del tema per mobile Futura2 - inclusione del widget per la ricerca dei candidati - inclusione della segnalazione dell'installazione - altre piccole migliorie.

Inserita classe e file mancanti

File size: 6.3 KB
Line 
1<?php
2/***************************************************************************
3 * mysql4.php
4 * -------------------
5 * begin : Saturday, Feb 13, 2001
6 * copyright : (C) 2001 The phpBB Group
7 * email : supportphpbb.com
8 *
9 * $Id: mysql4.php,v 1.5 2002/04/02 21:13:47 the_systech Exp $
10 *
11 ***************************************************************************/
12
13/***************************************************************************
14 *
15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by
17 * the Free Software Foundation; either version 2 of the License, or
18 * (at your option) any later version.
19 *
20 ***************************************************************************/
21
22if(!defined("SQL_LAYER"))
23{
24
25define("SQL_LAYER","mysql4");
26
27class sql_db
28{
29
30 var $db_connect_id;
31 var $query_result;
32 var $row = array();
33 var $rowset = array();
34 var $num_queries = 0;
35 var $in_transaction = 0;
36
37 //
38 // Constructor
39 //
40 function sql_db($sqlserver, $sqluser, $sqlpassword, $database, $persistency = true)
41 {
42 $this->persistency = $persistency;
43 $this->user = $sqluser;
44 $this->password = $sqlpassword;
45 $this->server = $sqlserver;
46 $this->dbname = $database;
47
48 $this->db_connect_id = ($this->persistency) ? mysql_pconnect($this->server, $this->user, $this->password) : mysql_connect($this->server, $this->user, $this->password);
49
50 if( $this->db_connect_id )
51 {
52 if( $database != "" )
53 {
54 $this->dbname = $database;
55 $dbselect = mysql_select_db($this->dbname);
56
57 if( !$dbselect )
58 {
59 mysql_close($this->db_connect_id);
60 $this->db_connect_id = $dbselect;
61 }
62 }
63
64 return $this->db_connect_id;
65 }
66 else
67 {
68 return false;
69 }
70 }
71
72 //
73 // Other base methods
74 //
75 function sql_close()
76 {
77 if( $this->db_connect_id )
78 {
79 //
80 // Commit any remaining transactions
81 //
82 if( $this->in_transaction )
83 {
84 mysql_query("COMMIT", $this->db_connect_id);
85 }
86
87 return mysql_close($this->db_connect_id);
88 }
89 else
90 {
91 return false;
92 }
93 }
94
95 //
96 // Base query method
97 //
98 function sql_query($query = "", $transaction = FALSE)
99 {
100 //
101 // Remove any pre-existing queries
102 //
103 unset($this->query_result);
104
105 if( $query != "" )
106 {
107 $this->num_queries++;
108 if( $transaction == BEGIN_TRANSACTION && !$this->in_transaction )
109 {
110 $result = mysql_query("BEGIN", $this->db_connect_id);
111 if(!$result)
112 {
113 return false;
114 }
115 $this->in_transaction = TRUE;
116 }
117
118 $this->query_result = mysql_query($query, $this->db_connect_id);
119 }
120 else
121 {
122 if( $transaction == END_TRANSACTION && $this->in_transaction )
123 {
124 $result = mysql_query("COMMIT", $this->db_connect_id);
125 }
126 }
127
128 if( $this->query_result )
129 {
130 unset($this->row[$this->query_result]);
131 unset($this->rowset[$this->query_result]);
132
133 if( $transaction == END_TRANSACTION && $this->in_transaction )
134 {
135 $this->in_transaction = FALSE;
136
137 if ( !mysql_query("COMMIT", $this->db_connect_id) )
138 {
139 mysql_query("ROLLBACK", $this->db_connect_id);
140 return false;
141 }
142 }
143
144 return $this->query_result;
145 }
146 else
147 {
148 if( $this->in_transaction )
149 {
150 mysql_query("ROLLBACK", $this->db_connect_id);
151 $this->in_transaction = FALSE;
152 }
153 return false;
154 }
155 }
156
157 //
158 // Other query methods
159 //
160 function sql_numrows($query_id = 0)
161 {
162 if( !$query_id )
163 {
164 $query_id = $this->query_result;
165 }
166
167 return ( $query_id ) ? mysql_num_rows($query_id) : false;
168 }
169
170 function sql_affectedrows()
171 {
172 return ( $this->db_connect_id ) ? mysql_affected_rows($this->db_connect_id) : false;
173 }
174
175 function sql_numfields($query_id = 0)
176 {
177 if( !$query_id )
178 {
179 $query_id = $this->query_result;
180 }
181
182 return ( $query_id ) ? mysql_num_fields($query_id) : false;
183 }
184
185 function sql_fieldname($offset, $query_id = 0)
186 {
187 if( !$query_id )
188 {
189 $query_id = $this->query_result;
190 }
191
192 return ( $query_id ) ? mysql_field_name($query_id, $offset) : false;
193 }
194
195 function sql_fieldtype($offset, $query_id = 0)
196 {
197 if( !$query_id )
198 {
199 $query_id = $this->query_result;
200 }
201
202 return ( $query_id ) ? mysql_field_type($query_id, $offset) : false;
203 }
204
205 function sql_fetchrow($query_id = 0)
206 {
207 if( !$query_id )
208 {
209 $query_id = $this->query_result;
210 }
211
212 if( $query_id )
213 {
214 $this->row[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC);
215 return $this->row[$query_id];
216 }
217 else
218 {
219 return false;
220 }
221 }
222
223 function sql_fetchrowset($query_id = 0)
224 {
225 if( !$query_id )
226 {
227 $query_id = $this->query_result;
228 }
229
230 if( $query_id )
231 {
232 unset($this->rowset[$query_id]);
233 unset($this->row[$query_id]);
234
235 while($this->rowset[$query_id] = mysql_fetch_array($query_id, MYSQL_ASSOC))
236 {
237 $result[] = $this->rowset[$query_id];
238 }
239
240 return $result;
241 }
242 else
243 {
244 return false;
245 }
246 }
247
248 function sql_fetchfield($field, $rownum = -1, $query_id = 0)
249 {
250 if( !$query_id )
251 {
252 $query_id = $this->query_result;
253 }
254
255 if( $query_id )
256 {
257 if( $rownum > -1 )
258 {
259 $result = mysql_result($query_id, $rownum, $field);
260 }
261 else
262 {
263 if( empty($this->row[$query_id]) && empty($this->rowset[$query_id]) )
264 {
265 if( $this->sql_fetchrow() )
266 {
267 $result = $this->row[$query_id][$field];
268 }
269 }
270 else
271 {
272 if( $this->rowset[$query_id] )
273 {
274 $result = $this->rowset[$query_id][$field];
275 }
276 else if( $this->row[$query_id] )
277 {
278 $result = $this->row[$query_id][$field];
279 }
280 }
281 }
282
283 return $result;
284 }
285 else
286 {
287 return false;
288 }
289 }
290
291 function sql_rowseek($rownum, $query_id = 0)
292 {
293 if( !$query_id )
294 {
295 $query_id = $this->query_result;
296 }
297
298 return ( $query_id ) ? mysql_data_seek($query_id, $rownum) : false;
299 }
300
301 function sql_nextid()
302 {
303 return ( $this->db_connect_id ) ? mysql_insert_id($this->db_connect_id) : false;
304 }
305
306 function sql_freeresult($query_id = 0)
307 {
308 if( !$query_id )
309 {
310 $query_id = $this->query_result;
311 }
312
313 if ( $query_id )
314 {
315 unset($this->row[$query_id]);
316 unset($this->rowset[$query_id]);
317
318 mysql_free_result($query_id);
319
320 return true;
321 }
322 else
323 {
324 return false;
325 }
326 }
327
328 function sql_error()
329 {
330 $result['message'] = mysql_error($this->db_connect_id);
331 $result['code'] = mysql_errno($this->db_connect_id);
332
333 return $result;
334 }
335
336} // class sql_db
337
338} // if ... define
339
340?>
Note: See TracBrowser for help on using the repository browser.