DB error log
[lhc/web/wiklou.git] / includes / DatabaseFunctions.php
1 <?php
2 # $Id$
3
4 # Backwards compatibility wrapper for Database.php
5
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
10
11 # Note: $wgDatabase has ceased to exist. Destroy all references.
12
13 $wgIsMySQL=false;
14 $wgIsPg=false;
15
16 if ($wgDBtype=="mysql") {
17 require_once( "Database.php" );
18 $wgIsMySQL=true;
19 } elseif ($wgDBtype=="pgsql") {
20 require_once( "DatabasePostgreSQL.php" );
21 $wgIsPg=true;
22 }
23
24
25 # Usually aborts on failure
26 # If errors are explicitly ignored, returns success
27 function wfQuery( $sql, $db, $fname = "" )
28 {
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 ) );
33 }
34 $c =& wfGetDB( $db );
35 if ( $c !== false ) {
36 return $c->query( $sql, $fname );
37 } else {
38 return false;
39 }
40 }
41
42 function &wfGetDB( $db = DB_LAST )
43 {
44 global $wgLoadBalancer;
45 return $wgLoadBalancer->getConnection( $db );
46 }
47
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.
51
52 function wfBufferSQLResults( $newstate, $dbi = DB_LAST )
53 {
54 $db =& wfGetDB( $dbi );
55 if ( $db !== false ) {
56 return $db->setBufferResults( $newstate );
57 } else {
58 return NULL;
59 }
60 }
61
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.
68
69 function wfIgnoreSQLErrors( $newstate, $dbi = DB_LAST )
70 {
71 $db =& wfGetDB( $dbi );
72 if ( $db !== false ) {
73 return $db->setIgnoreErrors( $newstate );
74 } else {
75 return NULL;
76 }
77 }
78
79 function wfFreeResult( $res, $dbi = DB_LAST )
80 {
81 $db =& wfGetDB( $dbi );
82 if ( $db !== false ) {
83 $db->freeResult( $res );
84 return true;
85 } else {
86 return false;
87 }
88 }
89
90 function wfFetchObject( $res, $dbi = DB_LAST )
91 {
92 $db =& wfGetDB( $dbi );
93 if ( $db !== false ) {
94 return $db->fetchObject( $res, $dbi = DB_LAST );
95 } else {
96 return false;
97 }
98 }
99
100 function wfFetchRow( $res, $dbi = DB_LAST )
101 {
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 function wfNumRows( $res, $dbi = DB_LAST )
111 {
112 $db =& wfGetDB( $dbi );
113 if ( $db !== false ) {
114 return $db->numRows( $res, $dbi = DB_LAST );
115 } else {
116 return false;
117 }
118 }
119
120 function wfNumFields( $res, $dbi = DB_LAST )
121 {
122 $db =& wfGetDB( $dbi );
123 if ( $db !== false ) {
124 return $db->numFields( $res );
125 } else {
126 return false;
127 }
128 }
129
130 function wfFieldName( $res, $n, $dbi = DB_LAST )
131 {
132 $db =& wfGetDB( $dbi );
133 if ( $db !== false ) {
134 return $db->fieldName( $res, $n, $dbi = DB_LAST );
135 } else {
136 return false;
137 }
138 }
139
140 function wfInsertId( $dbi = DB_LAST )
141 {
142 $db =& wfGetDB( $dbi );
143 if ( $db !== false ) {
144 return $db->insertId();
145 } else {
146 return false;
147 }
148 }
149
150 function wfDataSeek( $res, $row, $dbi = DB_LAST )
151 {
152 $db =& wfGetDB( $dbi );
153 if ( $db !== false ) {
154 return $db->dataSeek( $res, $row );
155 } else {
156 return false;
157 }
158 }
159
160 function wfLastErrno( $dbi = DB_LAST )
161 {
162 $db =& wfGetDB( $dbi );
163 if ( $db !== false ) {
164 return $db->lastErrno();
165 } else {
166 return false;
167 }
168 }
169
170 function wfLastError( $dbi = DB_LAST )
171 {
172 $db =& wfGetDB( $dbi );
173 if ( $db !== false ) {
174 return $db->lastError();
175 } else {
176 return false;
177 }
178 }
179
180 function wfAffectedRows( $dbi = DB_LAST )
181 {
182 $db =& wfGetDB( $dbi );
183 if ( $db !== false ) {
184 return $db->affectedRows();
185 } else {
186 return false;
187 }
188 }
189
190 function wfLastDBquery( $dbi = DB_LAST )
191 {
192 $db =& wfGetDB( $dbi );
193 if ( $db !== false ) {
194 return $db->lastQuery();
195 } else {
196 return false;
197 }
198 }
199
200 function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_WRITE )
201 {
202 $db =& wfGetDB( $dbi );
203 if ( $db !== false ) {
204 return $db->set( $table, $var, $value, $cond );
205 } else {
206 return false;
207 }
208 }
209
210 function wfGetSQL( $table, $var, $cond="", $dbi = DB_LAST )
211 {
212 $db =& wfGetDB( $dbi );
213 if ( $db !== false ) {
214 return $db->get( $table, $var, $cond );
215 } else {
216 return false;
217 }
218 }
219
220 function wfFieldExists( $table, $field, $dbi = DB_LAST )
221 {
222 $db =& wfGetDB( $dbi );
223 if ( $db !== false ) {
224 return $db->fieldExists( $table, $field );
225 } else {
226 return false;
227 }
228 }
229
230 function wfIndexExists( $table, $index, $dbi = DB_LAST )
231 {
232 $db =& wfGetDB( $dbi );
233 if ( $db !== false ) {
234 return $db->indexExists( $table, $index );
235 } else {
236 return false;
237 }
238 }
239
240 function wfInsertArray( $table, $array, $fname = "wfInsertArray", $dbi = DB_WRITE )
241 {
242 $db =& wfGetDB( $dbi );
243 if ( $db !== false ) {
244 return $db->insertArray( $table, $array, $fname );
245 } else {
246 return false;
247 }
248 }
249
250 function wfGetArray( $table, $vars, $conds, $fname = "wfGetArray", $dbi = DB_LAST )
251 {
252 $db =& wfGetDB( $dbi );
253 if ( $db !== false ) {
254 return $db->getArray( $table, $vars, $conds, $fname );
255 } else {
256 return false;
257 }
258 }
259
260 function wfUpdateArray( $table, $values, $conds, $fname = "wfUpdateArray", $dbi = DB_WRITE )
261 {
262 $db =& wfGetDB( $dbi );
263 if ( $db !== false ) {
264 $db->updateArray( $table, $values, $conds, $fname );
265 return true;
266 } else {
267 return false;
268 }
269 }
270
271 ?>