-function wfGetDB( $altuser = "", $altpassword = "", $altserver = "", $altdb = "" )
-{
- global $wgDBserver, $wgDBuser, $wgDBpassword;
- global $wgDBname, $wgDBconnection, $wgEmergencyContact;
-
- $noconn = wfMsgNoDB( "noconnect", $wgDBserver );
- $nodb = wfMsgNoDB( "nodb", $wgDBname );
-
- $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 = "" )
-{
- global $wgLastDatabaseQuery, $wgOut, $wgDebugDumpSql;