AutoLoad RecentChange
[lhc/web/wiklou.git] / includes / DatabaseFunctions.php
1 <?php
2 /**
3 * Backwards compatibility wrapper for Database.php
4 *
5 * Note: $wgDatabase has ceased to exist. Destroy all references.
6 *
7 * @package MediaWiki
8 */
9
10 /**
11 * Usually aborts on failure
12 * If errors are explicitly ignored, returns success
13 * @param $sql String: SQL query
14 * @param $db Mixed: database handler
15 * @param $fname String: name of the php function calling
16 */
17 function wfQuery( $sql, $db, $fname = '' ) {
18 global $wgOut;
19 if ( !is_numeric( $db ) ) {
20 # Someone has tried to call this the old way
21 $wgOut->fatalError( wfMsgNoDB( 'wrong_wfQuery_params', $db, $sql ) );
22 }
23 $c =& wfGetDB( $db );
24 if ( $c !== false ) {
25 return $c->query( $sql, $fname );
26 } else {
27 return false;
28 }
29 }
30
31 /**
32 *
33 * @param $sql String: SQL query
34 * @param $dbi
35 * @param $fname String: name of the php function calling
36 * @return Array: first row from the database
37 */
38 function wfSingleQuery( $sql, $dbi, $fname = '' ) {
39 $db =& wfGetDB( $dbi );
40 $res = $db->query($sql, $fname );
41 $row = $db->fetchRow( $res );
42 $ret = $row[0];
43 $db->freeResult( $res );
44 return $ret;
45 }
46
47 /*
48 * @todo document function
49 */
50 function &wfGetDB( $db = DB_LAST, $groups = array() ) {
51 global $wgLoadBalancer;
52 $ret =& $wgLoadBalancer->getConnection( $db, true, $groups );
53 return $ret;
54 }
55
56 /**
57 * Turns on (false) or off (true) the automatic generation and sending
58 * of a "we're sorry, but there has been a database error" page on
59 * database errors. Default is on (false). When turned off, the
60 * code should use wfLastErrno() and wfLastError() to handle the
61 * situation as appropriate.
62 *
63 * @param $newstate
64 * @param $dbi
65 * @return Returns the previous state.
66 */
67 function wfIgnoreSQLErrors( $newstate, $dbi = DB_LAST ) {
68 $db =& wfGetDB( $dbi );
69 if ( $db !== false ) {
70 return $db->ignoreErrors( $newstate );
71 } else {
72 return NULL;
73 }
74 }
75
76 /**#@+
77 * @param $res Database result handler
78 * @param $dbi
79 */
80
81 /**
82 * Free a database result
83 * @return Bool: whether result is sucessful or not.
84 */
85 function wfFreeResult( $res, $dbi = DB_LAST )
86 {
87 $db =& wfGetDB( $dbi );
88 if ( $db !== false ) {
89 $db->freeResult( $res );
90 return true;
91 } else {
92 return false;
93 }
94 }
95
96 /**
97 * Get an object from a database result
98 * @return object|false object we requested
99 */
100 function wfFetchObject( $res, $dbi = DB_LAST ) {
101 $db =& wfGetDB( $dbi );
102 if ( $db !== false ) {
103 return $db->fetchObject( $res, $dbi = DB_LAST );
104 } else {
105 return false;
106 }
107 }
108
109 /**
110 * Get a row from a database result
111 * @return object|false row we requested
112 */
113 function wfFetchRow( $res, $dbi = DB_LAST ) {
114 $db =& wfGetDB( $dbi );
115 if ( $db !== false ) {
116 return $db->fetchRow ( $res, $dbi = DB_LAST );
117 } else {
118 return false;
119 }
120 }
121
122 /**
123 * Get a number of rows from a database result
124 * @return integer|false number of rows
125 */
126 function wfNumRows( $res, $dbi = DB_LAST ) {
127 $db =& wfGetDB( $dbi );
128 if ( $db !== false ) {
129 return $db->numRows( $res, $dbi = DB_LAST );
130 } else {
131 return false;
132 }
133 }
134
135 /**
136 * Get the number of fields from a database result
137 * @return integer|false number of fields
138 */
139 function wfNumFields( $res, $dbi = DB_LAST ) {
140 $db =& wfGetDB( $dbi );
141 if ( $db !== false ) {
142 return $db->numFields( $res );
143 } else {
144 return false;
145 }
146 }
147
148 /**
149 * Return name of a field in a result
150 * @param $res Mixed: Ressource link see Database::fieldName()
151 * @param $n Integer: id of the field
152 * @param $dbi Default DB_LAST
153 * @return string|false name of field
154 */
155 function wfFieldName( $res, $n, $dbi = DB_LAST )
156 {
157 $db =& wfGetDB( $dbi );
158 if ( $db !== false ) {
159 return $db->fieldName( $res, $n, $dbi = DB_LAST );
160 } else {
161 return false;
162 }
163 }
164 /**#@-*/
165
166 /**
167 * @todo document function
168 */
169 function wfInsertId( $dbi = DB_LAST ) {
170 $db =& wfGetDB( $dbi );
171 if ( $db !== false ) {
172 return $db->insertId();
173 } else {
174 return false;
175 }
176 }
177
178 /**
179 * @todo document function
180 */
181 function wfDataSeek( $res, $row, $dbi = DB_LAST ) {
182 $db =& wfGetDB( $dbi );
183 if ( $db !== false ) {
184 return $db->dataSeek( $res, $row );
185 } else {
186 return false;
187 }
188 }
189
190 /**
191 * @todo document function
192 */
193 function wfLastErrno( $dbi = DB_LAST ) {
194 $db =& wfGetDB( $dbi );
195 if ( $db !== false ) {
196 return $db->lastErrno();
197 } else {
198 return false;
199 }
200 }
201
202 /**
203 * @todo document function
204 */
205 function wfLastError( $dbi = DB_LAST ) {
206 $db =& wfGetDB( $dbi );
207 if ( $db !== false ) {
208 return $db->lastError();
209 } else {
210 return false;
211 }
212 }
213
214 /**
215 * @todo document function
216 */
217 function wfAffectedRows( $dbi = DB_LAST ) {
218 $db =& wfGetDB( $dbi );
219 if ( $db !== false ) {
220 return $db->affectedRows();
221 } else {
222 return false;
223 }
224 }
225
226 /**
227 * @todo document function
228 */
229 function wfLastDBquery( $dbi = DB_LAST ) {
230 $db =& wfGetDB( $dbi );
231 if ( $db !== false ) {
232 return $db->lastQuery();
233 } else {
234 return false;
235 }
236 }
237
238 /**
239 * @see Database::Set()
240 * @todo document function
241 * @param $table
242 * @param $var
243 * @param $value
244 * @param $cond
245 * @param $dbi Default DB_MASTER
246 */
247 function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_MASTER )
248 {
249 $db =& wfGetDB( $dbi );
250 if ( $db !== false ) {
251 return $db->set( $table, $var, $value, $cond );
252 } else {
253 return false;
254 }
255 }
256
257
258 /**
259 * @see Database::selectField()
260 * @todo document function
261 * @param $table
262 * @param $var
263 * @param $cond Default ''
264 * @param $dbi Default DB_LAST
265 */
266 function wfGetSQL( $table, $var, $cond='', $dbi = DB_LAST )
267 {
268 $db =& wfGetDB( $dbi );
269 if ( $db !== false ) {
270 return $db->selectField( $table, $var, $cond );
271 } else {
272 return false;
273 }
274 }
275
276 /**
277 * @see Database::fieldExists()
278 * @todo document function
279 * @param $table
280 * @param $field
281 * @param $dbi Default DB_LAST
282 * @return Result of Database::fieldExists() or false.
283 */
284 function wfFieldExists( $table, $field, $dbi = DB_LAST ) {
285 $db =& wfGetDB( $dbi );
286 if ( $db !== false ) {
287 return $db->fieldExists( $table, $field );
288 } else {
289 return false;
290 }
291 }
292
293 /**
294 * @see Database::indexExists()
295 * @todo document function
296 * @param $table String
297 * @param $index
298 * @param $dbi Default DB_LAST
299 * @return Result of Database::indexExists() or false.
300 */
301 function wfIndexExists( $table, $index, $dbi = DB_LAST ) {
302 $db =& wfGetDB( $dbi );
303 if ( $db !== false ) {
304 return $db->indexExists( $table, $index );
305 } else {
306 return false;
307 }
308 }
309
310 /**
311 * @see Database::insert()
312 * @todo document function
313 * @param $table String
314 * @param $array Array
315 * @param $fname String, default 'wfInsertArray'.
316 * @param $dbi Default DB_MASTER
317 * @return result of Database::insert() or false.
318 */
319 function wfInsertArray( $table, $array, $fname = 'wfInsertArray', $dbi = DB_MASTER ) {
320 $db =& wfGetDB( $dbi );
321 if ( $db !== false ) {
322 return $db->insert( $table, $array, $fname );
323 } else {
324 return false;
325 }
326 }
327
328 /**
329 * @see Database::getArray()
330 * @todo document function
331 * @param $table String
332 * @param $vars
333 * @param $conds
334 * @param $fname String, default 'wfGetArray'.
335 * @param $dbi Default DB_LAST
336 * @return result of Database::getArray() or false.
337 */
338 function wfGetArray( $table, $vars, $conds, $fname = 'wfGetArray', $dbi = DB_LAST ) {
339 $db =& wfGetDB( $dbi );
340 if ( $db !== false ) {
341 return $db->getArray( $table, $vars, $conds, $fname );
342 } else {
343 return false;
344 }
345 }
346
347 /**
348 * @see Database::update()
349 * @param $table String
350 * @param $values
351 * @param $conds
352 * @param $fname String, default 'wfUpdateArray'
353 * @param $dbi Default DB_MASTER
354 * @return Result of Database::update()) or false;
355 * @todo document function
356 */
357 function wfUpdateArray( $table, $values, $conds, $fname = 'wfUpdateArray', $dbi = DB_MASTER ) {
358 $db =& wfGetDB( $dbi );
359 if ( $db !== false ) {
360 $db->update( $table, $values, $conds, $fname );
361 return true;
362 } else {
363 return false;
364 }
365 }
366
367 /**
368 * @todo document function
369 */
370 function wfTableName( $name, $dbi = DB_LAST ) {
371 $db =& wfGetDB( $dbi );
372 if ( $db !== false ) {
373 return $db->tableName( $name );
374 } else {
375 return false;
376 }
377 }
378
379 /**
380 * @todo document function
381 */
382 function wfStrencode( $s, $dbi = DB_LAST ) {
383 $db =& wfGetDB( $dbi );
384 if ( $db !== false ) {
385 return $db->strencode( $s );
386 } else {
387 return false;
388 }
389 }
390
391 /**
392 * @todo document function
393 */
394 function wfNextSequenceValue( $seqName, $dbi = DB_MASTER ) {
395 $db =& wfGetDB( $dbi );
396 if ( $db !== false ) {
397 return $db->nextSequenceValue( $seqName );
398 } else {
399 return false;
400 }
401 }
402
403 /**
404 * @todo document function
405 */
406 function wfUseIndexClause( $index, $dbi = DB_SLAVE ) {
407 $db =& wfGetDB( $dbi );
408 if ( $db !== false ) {
409 return $db->useIndexClause( $index );
410 } else {
411 return false;
412 }
413 }
414 ?>