Load balancer bug fixes
[mediawiki.git] / includes / DatabaseFunctions.php
blob0169b9ff5eb3b391b671c0f635b12e09197ba414
1 <?php
2 # $Id$
4 # Backwards compatibility wrapper for Database.php
6 # I imagine this file will eventually become a backwards
7 # compatibility wrapper around a load balancer object, and
8 # the load balancer will finally call Database, which will
9 # represent a single connection
11 # Note: $wgDatabase has ceased to exist. Destroy all references.
13 $wgIsMySQL=false;
14 $wgIsPg=false;
16 if ($wgDBtype=="mysql") {
17 require_once( "Database.php" );
18 $wgIsMySQL=true;
19 } elseif ($wgDBtype=="pgsql") {
20 require_once( "DatabasePostgreSQL.php" );
21 $wgIsPg=true;
25 # Usually aborts on failure
26 # If errors are explicitly ignored, returns success
27 function wfQuery( $sql, $db, $fname = "" )
29 global $wgOut;
30 if ( !is_numeric( $db ) ) {
31 # Someone has tried to call this the old way
32 $wgOut->fatalError( wfMsgNoDB( "wrong_wfQuery_params", $db, $sql ) );
34 $c =& wfGetDB( $db );
35 if ( $c !== false ) {
36 return $c->query( $sql, $fname );
37 } else {
38 return false;
42 function &wfGetDB( $db = DB_LAST )
44 global $wgLoadBalancer;
45 return $wgLoadBalancer->getConnection( $db );
48 # Turns buffering of SQL result sets on (true) or off (false). Default is
49 # "on" and it should not be changed without good reasons.
50 # Returns the previous state.
52 function wfBufferSQLResults( $newstate, $dbi = DB_LAST )
54 $db =& wfGetDB( $dbi );
55 if ( $db !== false ) {
56 return $db->setBufferResults( $newstate );
57 } else {
58 return NULL;
62 # Turns on (false) or off (true) the automatic generation and sending
63 # of a "we're sorry, but there has been a database error" page on
64 # database errors. Default is on (false). When turned off, the
65 # code should use wfLastErrno() and wfLastError() to handle the
66 # situation as appropriate.
67 # Returns the previous state.
69 function wfIgnoreSQLErrors( $newstate, $dbi = DB_LAST )
71 $db =& wfGetDB( $dbi );
72 if ( $db !== false ) {
73 return $db->setIgnoreErrors( $newstate );
74 } else {
75 return NULL;
79 function wfFreeResult( $res, $dbi = DB_LAST )
81 $db =& wfGetDB( $dbi );
82 if ( $db !== false ) {
83 $db->freeResult( $res );
84 return true;
85 } else {
86 return false;
90 function wfFetchObject( $res, $dbi = DB_LAST )
92 $db =& wfGetDB( $dbi );
93 if ( $db !== false ) {
94 return $db->fetchObject( $res, $dbi = DB_LAST );
95 } else {
96 return false;
100 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;
110 function wfNumRows( $res, $dbi = DB_LAST )
112 $db =& wfGetDB( $dbi );
113 if ( $db !== false ) {
114 return $db->numRows( $res, $dbi = DB_LAST );
115 } else {
116 return false;
120 function wfNumFields( $res, $dbi = DB_LAST )
122 $db =& wfGetDB( $dbi );
123 if ( $db !== false ) {
124 return $db->numFields( $res );
125 } else {
126 return false;
130 function wfFieldName( $res, $n, $dbi = DB_LAST )
132 $db =& wfGetDB( $dbi );
133 if ( $db !== false ) {
134 return $db->fieldName( $res, $n, $dbi = DB_LAST );
135 } else {
136 return false;
140 function wfInsertId( $dbi = DB_LAST )
142 $db =& wfGetDB( $dbi );
143 if ( $db !== false ) {
144 return $db->insertId();
145 } else {
146 return false;
150 function wfDataSeek( $res, $row, $dbi = DB_LAST )
152 $db =& wfGetDB( $dbi );
153 if ( $db !== false ) {
154 return $db->dataSeek( $res, $row );
155 } else {
156 return false;
160 function wfLastErrno( $dbi = DB_LAST )
162 $db =& wfGetDB( $dbi );
163 if ( $db !== false ) {
164 return $db->lastErrno();
165 } else {
166 return false;
170 function wfLastError( $dbi = DB_LAST )
172 $db =& wfGetDB( $dbi );
173 if ( $db !== false ) {
174 return $db->lastError();
175 } else {
176 return false;
180 function wfAffectedRows( $dbi = DB_LAST )
182 $db =& wfGetDB( $dbi );
183 if ( $db !== false ) {
184 return $db->affectedRows();
185 } else {
186 return false;
190 function wfLastDBquery( $dbi = DB_LAST )
192 $db =& wfGetDB( $dbi );
193 if ( $db !== false ) {
194 return $db->lastQuery();
195 } else {
196 return false;
200 function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_WRITE )
202 $db =& wfGetDB( $dbi );
203 if ( $db !== false ) {
204 return $db->set( $table, $var, $value, $cond );
205 } else {
206 return false;
210 function wfGetSQL( $table, $var, $cond="", $dbi = DB_LAST )
212 $db =& wfGetDB( $dbi );
213 if ( $db !== false ) {
214 return $db->get( $table, $var, $cond );
215 } else {
216 return false;
220 function wfFieldExists( $table, $field, $dbi = DB_LAST )
222 $db =& wfGetDB( $dbi );
223 if ( $db !== false ) {
224 return $db->fieldExists( $table, $field );
225 } else {
226 return false;
230 function wfIndexExists( $table, $index, $dbi = DB_LAST )
232 $db =& wfGetDB( $dbi );
233 if ( $db !== false ) {
234 return $db->indexExists( $table, $index );
235 } else {
236 return false;
240 function wfInsertArray( $table, $array, $fname = "wfInsertArray", $dbi = DB_WRITE )
242 $db =& wfGetDB( $dbi );
243 if ( $db !== false ) {
244 return $db->insertArray( $table, $array, $fname );
245 } else {
246 return false;
250 function wfGetArray( $table, $vars, $conds, $fname = "wfGetArray", $dbi = DB_LAST )
252 $db =& wfGetDB( $dbi );
253 if ( $db !== false ) {
254 return $db->getArray( $table, $vars, $conds, $fname );
255 } else {
256 return false;
260 function wfUpdateArray( $table, $values, $conds, $fname = "wfUpdateArray", $dbi = DB_WRITE )
262 $db =& wfGetDB( $dbi );
263 if ( $db !== false ) {
264 $db->updateArray( $table, $values, $conds, $fname );
265 return true;
266 } else {
267 return false;