* Removed renameuser permission, extension code
[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 string $sql SQL query
14 * @param mixed $db database handler
15 * @param string $fname 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 string $sql SQL query
34 * @param $dbi
35 * @param string $fname 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 integer $n id of the field
151 * @return string|false name of field
152 */
153 function wfFieldName( $res, $n, $dbi = DB_LAST )
154 {
155 $db =& wfGetDB( $dbi );
156 if ( $db !== false ) {
157 return $db->fieldName( $res, $n, $dbi = DB_LAST );
158 } else {
159 return false;
160 }
161 }
162 /**#@-*/
163
164 /**
165 * @todo document function
166 */
167 function wfInsertId( $dbi = DB_LAST ) {
168 $db =& wfGetDB( $dbi );
169 if ( $db !== false ) {
170 return $db->insertId();
171 } else {
172 return false;
173 }
174 }
175
176 /**
177 * @todo document function
178 */
179 function wfDataSeek( $res, $row, $dbi = DB_LAST ) {
180 $db =& wfGetDB( $dbi );
181 if ( $db !== false ) {
182 return $db->dataSeek( $res, $row );
183 } else {
184 return false;
185 }
186 }
187
188 /**
189 * @todo document function
190 */
191 function wfLastErrno( $dbi = DB_LAST ) {
192 $db =& wfGetDB( $dbi );
193 if ( $db !== false ) {
194 return $db->lastErrno();
195 } else {
196 return false;
197 }
198 }
199
200 /**
201 * @todo document function
202 */
203 function wfLastError( $dbi = DB_LAST ) {
204 $db =& wfGetDB( $dbi );
205 if ( $db !== false ) {
206 return $db->lastError();
207 } else {
208 return false;
209 }
210 }
211
212 /**
213 * @todo document function
214 */
215 function wfAffectedRows( $dbi = DB_LAST ) {
216 $db =& wfGetDB( $dbi );
217 if ( $db !== false ) {
218 return $db->affectedRows();
219 } else {
220 return false;
221 }
222 }
223
224 /**
225 * @todo document function
226 */
227 function wfLastDBquery( $dbi = DB_LAST ) {
228 $db =& wfGetDB( $dbi );
229 if ( $db !== false ) {
230 return $db->lastQuery();
231 } else {
232 return false;
233 }
234 }
235
236 /**
237 * @todo document function
238 */
239 function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_MASTER )
240 {
241 $db =& wfGetDB( $dbi );
242 if ( $db !== false ) {
243 return $db->set( $table, $var, $value, $cond );
244 } else {
245 return false;
246 }
247 }
248
249
250 /**
251 * @todo document function
252 */
253 function wfGetSQL( $table, $var, $cond='', $dbi = DB_LAST )
254 {
255 $db =& wfGetDB( $dbi );
256 if ( $db !== false ) {
257 return $db->selectField( $table, $var, $cond );
258 } else {
259 return false;
260 }
261 }
262
263 /**
264 * @todo document function
265 */
266 function wfFieldExists( $table, $field, $dbi = DB_LAST ) {
267 $db =& wfGetDB( $dbi );
268 if ( $db !== false ) {
269 return $db->fieldExists( $table, $field );
270 } else {
271 return false;
272 }
273 }
274
275 /**
276 * @todo document function
277 */
278 function wfIndexExists( $table, $index, $dbi = DB_LAST ) {
279 $db =& wfGetDB( $dbi );
280 if ( $db !== false ) {
281 return $db->indexExists( $table, $index );
282 } else {
283 return false;
284 }
285 }
286
287 /**
288 * @todo document function
289 */
290 function wfInsertArray( $table, $array, $fname = 'wfInsertArray', $dbi = DB_MASTER ) {
291 $db =& wfGetDB( $dbi );
292 if ( $db !== false ) {
293 return $db->insert( $table, $array, $fname );
294 } else {
295 return false;
296 }
297 }
298
299 /**
300 * @todo document function
301 */
302 function wfGetArray( $table, $vars, $conds, $fname = 'wfGetArray', $dbi = DB_LAST ) {
303 $db =& wfGetDB( $dbi );
304 if ( $db !== false ) {
305 return $db->getArray( $table, $vars, $conds, $fname );
306 } else {
307 return false;
308 }
309 }
310
311 /**
312 * @todo document function
313 */
314 function wfUpdateArray( $table, $values, $conds, $fname = 'wfUpdateArray', $dbi = DB_MASTER ) {
315 $db =& wfGetDB( $dbi );
316 if ( $db !== false ) {
317 $db->update( $table, $values, $conds, $fname );
318 return true;
319 } else {
320 return false;
321 }
322 }
323
324 /**
325 * @todo document function
326 */
327 function wfTableName( $name, $dbi = DB_LAST ) {
328 $db =& wfGetDB( $dbi );
329 if ( $db !== false ) {
330 return $db->tableName( $name );
331 } else {
332 return false;
333 }
334 }
335
336 /**
337 * @todo document function
338 */
339 function wfStrencode( $s, $dbi = DB_LAST ) {
340 $db =& wfGetDB( $dbi );
341 if ( $db !== false ) {
342 return $db->strencode( $s );
343 } else {
344 return false;
345 }
346 }
347
348 /**
349 * @todo document function
350 */
351 function wfNextSequenceValue( $seqName, $dbi = DB_MASTER ) {
352 $db =& wfGetDB( $dbi );
353 if ( $db !== false ) {
354 return $db->nextSequenceValue( $seqName );
355 } else {
356 return false;
357 }
358 }
359
360 /**
361 * @todo document function
362 */
363 function wfUseIndexClause( $index, $dbi = DB_SLAVE ) {
364 $db =& wfGetDB( $dbi );
365 if ( $db !== false ) {
366 return $db->useIndexClause( $index );
367 } else {
368 return false;
369 }
370 }
371 ?>