Allow raw HTML blocks in data['sidebar'] array. This provides a simple ways for exten...
[mediawiki.git] / includes / DatabaseFunctions.php
blobad6e7f6c2221a48a8c1da508e7fa51dd23633296
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 */
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
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 ) );
21 $c = wfGetDB( $db );
22 if ( $c !== false ) {
23 return $c->query( $sql, $fname );
24 } else {
25 return false;
29 /**
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
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;
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.
52 * @param $newstate
53 * @param $dbi
54 * @return Returns the previous state.
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;
65 /**#@+
66 * @param $res Database result handler
67 * @param $dbi
70 /**
71 * Free a database result
72 * @return Bool: whether result is sucessful or not.
74 function wfFreeResult( $res, $dbi = DB_LAST )
76 $db = wfGetDB( $dbi );
77 if ( $db !== false ) {
78 $db->freeResult( $res );
79 return true;
80 } else {
81 return false;
85 /**
86 * Get an object from a database result
87 * @return object|false object we requested
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;
98 /**
99 * Get a row from a database result
100 * @return object|false row we requested
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;
112 * Get a number of rows from a database result
113 * @return integer|false number of rows
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;
125 * Get the number of fields from a database result
126 * @return integer|false number of fields
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;
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
144 function wfFieldName( $res, $n, $dbi = DB_LAST )
146 $db = wfGetDB( $dbi );
147 if ( $db !== false ) {
148 return $db->fieldName( $res, $n, $dbi = DB_LAST );
149 } else {
150 return false;
153 /**#@-*/
156 * @todo document function
158 function wfInsertId( $dbi = DB_LAST ) {
159 $db = wfGetDB( $dbi );
160 if ( $db !== false ) {
161 return $db->insertId();
162 } else {
163 return false;
168 * @todo document function
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;
180 * @todo document function
182 function wfLastErrno( $dbi = DB_LAST ) {
183 $db = wfGetDB( $dbi );
184 if ( $db !== false ) {
185 return $db->lastErrno();
186 } else {
187 return false;
192 * @todo document function
194 function wfLastError( $dbi = DB_LAST ) {
195 $db = wfGetDB( $dbi );
196 if ( $db !== false ) {
197 return $db->lastError();
198 } else {
199 return false;
204 * @todo document function
206 function wfAffectedRows( $dbi = DB_LAST ) {
207 $db = wfGetDB( $dbi );
208 if ( $db !== false ) {
209 return $db->affectedRows();
210 } else {
211 return false;
216 * @todo document function
218 function wfLastDBquery( $dbi = DB_LAST ) {
219 $db = wfGetDB( $dbi );
220 if ( $db !== false ) {
221 return $db->lastQuery();
222 } else {
223 return false;
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
236 function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_MASTER )
238 $db = wfGetDB( $dbi );
239 if ( $db !== false ) {
240 return $db->set( $table, $var, $value, $cond );
241 } else {
242 return false;
248 * @see Database::selectField()
249 * @todo document function
250 * @param $table
251 * @param $var
252 * @param $cond Default ''
253 * @param $dbi Default DB_LAST
255 function wfGetSQL( $table, $var, $cond='', $dbi = DB_LAST )
257 $db = wfGetDB( $dbi );
258 if ( $db !== false ) {
259 return $db->selectField( $table, $var, $cond );
260 } else {
261 return false;
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.
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;
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.
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;
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.
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;
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.
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;
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
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;
357 * @todo document function
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;
369 * @todo document function
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;
381 * @todo document function
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;
393 * @todo document function
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;