- global $wgDBserver, $wgDBuser, $wgDBpassword;
- global $wgDBname, $wgDBconnection, $wgEmergencyContact;
-
- $noconn = str_replace( "$1", $wgDBserver, wfMsgNoDB( "noconnect" ) );
- $nodb = str_replace( "$1", $wgDBname, wfMsgNoDB( "nodb" ) );
-
- $helpme = "\n<p>If this error persists after reloading and clearing " .
- "your browser cache, please notify the <a href=\"mailto:" .
- $wgEmergencyContact . "\">Wikipedia developers</a>.</p>";
-
- if ( $altuser != "" ) {
- $serve = ($altserver ? $altserver : $wgDBserver );
- $db = ($altdb ? $altdb : $wgDBname );
- $wgDBconnection = mysql_connect( $serve, $altuser, $altpassword )
- or die( "bad sql user" );
- mysql_select_db( $db, $wgDBconnection ) or die(
- htmlspecialchars(mysql_error()) );
- }
-
- if ( ! $wgDBconnection ) {
- @$wgDBconnection = mysql_pconnect( $wgDBserver, $wgDBuser, $wgDBpassword )
- or wfEmergencyAbort();
-
- if( !mysql_select_db( $wgDBname, $wgDBconnection ) ) {
- /* Persistent connections may become stuck in an unusable state */
- wfDebug( "Persistent connection is broken?\n", true );
-
- @$wgDBconnection = mysql_connect( $wgDBserver, $wgDBuser, $wgDBpassword )
- or wfEmergencyAbort();
-
- @mysql_select_db( $wgDBname, $wgDBconnection )
- or wfEmergencyAbort();
- }
- }
- # mysql_ping( $wgDBconnection );
- return $wgDBconnection;
-}
-
-/* Call this function if we couldn't contact the database...
- We'll try to use the cache to display something in the meantime */
-function wfEmergencyAbort( $msg = "" ) {
- global $wgTitle, $wgUseFileCache, $title, $wgOutputEncoding;
-
- header( "Content-type: text/html; charset=$wgOutputEncoding" );
- if($msg == "") $msg = wfMsgNoDB( "noconnect" );
- $text = $msg;
-
- if($wgUseFileCache) {
- if($wgTitle) {
- $t =& $wgTitle;
- } else {
- if($title) {
- $t = Title::newFromURL( $title );
- } else {
- $t = Title::newFromText( wfMsgNoDB( "mainpage" ) );
- }
- }
-
- $cache = new CacheManager( $t );
- if( $cache->isFileCached() ) {
- $msg = "<p style='color: red'><b>$msg<br>\n" .
- wfMsgNoDB( "cachederror" ) . "</b></p>\n";
-
- $tag = "<div id='article'>";
- $text = str_replace(
- $tag,
- $tag . $msg,
- $cache->fetchPageText() );
- }
- }
-
- /* Don't cache error pages! They cause no end of trouble... */
- header( "Cache-control: none" );
- header( "Pragma: nocache" );
- echo $text;
- exit;
-}
-
-# $db: DB_READ = -1 read from slave (or only server)
-# DB_WRITE = -2 write to master (or only server)
-# 0,1,2,... query a database with a specific index
-# Replication is not actually implemented just yet
-function wfQuery( $sql, $db, $fname = "" )
+ $db =& wfGetDB( $dbi );
+ if ( $db !== false ) {
+ $db->freeResult( $res );
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Get an object from a database result
+ * @return object|false object we requested
+ */
+function wfFetchObject( $res, $dbi = DB_LAST ) {
+ $db =& wfGetDB( $dbi );
+ if ( $db !== false ) {
+ return $db->fetchObject( $res, $dbi = DB_LAST );
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Get a row from a database result
+ * @return object|false row we requested
+ */
+function wfFetchRow( $res, $dbi = DB_LAST ) {
+ $db =& wfGetDB( $dbi );
+ if ( $db !== false ) {
+ return $db->fetchRow ( $res, $dbi = DB_LAST );
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Get a number of rows from a database result
+ * @return integer|false number of rows
+ */
+function wfNumRows( $res, $dbi = DB_LAST ) {
+ $db =& wfGetDB( $dbi );
+ if ( $db !== false ) {
+ return $db->numRows( $res, $dbi = DB_LAST );
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Get the number of fields from a database result
+ * @return integer|false number of fields
+ */
+function wfNumFields( $res, $dbi = DB_LAST ) {
+ $db =& wfGetDB( $dbi );
+ if ( $db !== false ) {
+ return $db->numFields( $res );
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Return name of a field in a result
+ * @param integer $n id of the field
+ * @return string|false name of field
+ */
+function wfFieldName( $res, $n, $dbi = DB_LAST )