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