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