2004-02-18 02:15:00 +00:00
|
|
|
<?php
|
2004-06-09 16:13:04 +00:00
|
|
|
# $Id$
|
2003-04-14 23:10:40 +00:00
|
|
|
|
2004-01-10 16:44:31 +00:00
|
|
|
# Backwards compatibility wrapper for Database.php
|
2003-09-20 02:30:00 +00:00
|
|
|
|
2004-01-17 05:49:39 +00:00
|
|
|
# I imagine this file will eventually become a backwards
|
|
|
|
|
# compatibility wrapper around a load balancer object, and
|
|
|
|
|
# the load balancer will finally call Database, which will
|
|
|
|
|
# represent a single connection
|
|
|
|
|
|
2004-06-19 06:45:22 +00:00
|
|
|
# Note: $wgDatabase has ceased to exist. Destroy all references.
|
2004-01-17 05:49:39 +00:00
|
|
|
|
2004-06-09 16:13:04 +00:00
|
|
|
$wgIsMySQL=false;
|
|
|
|
|
$wgIsPg=false;
|
|
|
|
|
|
|
|
|
|
if ($wgDBtype=="mysql") {
|
|
|
|
|
require_once( "Database.php" );
|
|
|
|
|
$wgIsMySQL=true;
|
|
|
|
|
} elseif ($wgDBtype=="pgsql") {
|
|
|
|
|
require_once( "DatabasePostgreSQL.php" );
|
|
|
|
|
$wgIsPg=true;
|
|
|
|
|
}
|
2003-08-02 10:13:27 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
|
2004-01-10 16:44:31 +00:00
|
|
|
# Usually aborts on failure
|
|
|
|
|
# If errors are explicitly ignored, returns success
|
|
|
|
|
function wfQuery( $sql, $db, $fname = "" )
|
|
|
|
|
{
|
2004-06-22 08:54:26 +00:00
|
|
|
global $wgOut;
|
2003-11-02 13:57:24 +00:00
|
|
|
if ( !is_numeric( $db ) ) {
|
|
|
|
|
# Someone has tried to call this the old way
|
2003-11-09 11:45:12 +00:00
|
|
|
$wgOut->fatalError( wfMsgNoDB( "wrong_wfQuery_params", $db, $sql ) );
|
2003-11-02 13:57:24 +00:00
|
|
|
}
|
2004-06-15 15:00:54 +00:00
|
|
|
$c =& wfGetDB( $db );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $c !== false ) {
|
|
|
|
|
return $c->query( $sql, $fname );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
|
2004-07-08 14:53:54 +00:00
|
|
|
function wfSingleQuery( $sql, $db, $fname = "" )
|
|
|
|
|
{
|
|
|
|
|
$res = wfQuery($sql, $db, $fname );
|
|
|
|
|
$row = wfFetchRow( $res );
|
|
|
|
|
$ret = $row[0];
|
|
|
|
|
wfFreeResult( $res );
|
|
|
|
|
return $ret;
|
|
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function &wfGetDB( $db = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
global $wgLoadBalancer;
|
|
|
|
|
return $wgLoadBalancer->getConnection( $db );
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
|
2003-12-13 20:26:47 +00:00
|
|
|
# Turns buffering of SQL result sets on (true) or off (false). Default is
|
|
|
|
|
# "on" and it should not be changed without good reasons.
|
|
|
|
|
# Returns the previous state.
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfBufferSQLResults( $newstate, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->setBufferResults( $newstate );
|
|
|
|
|
} else {
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
2003-12-13 20:26:47 +00:00
|
|
|
}
|
2003-11-24 19:33:26 +00:00
|
|
|
|
2003-12-13 20:26:47 +00:00
|
|
|
# Turns on (false) or off (true) the automatic generation and sending
|
|
|
|
|
# of a "we're sorry, but there has been a database error" page on
|
|
|
|
|
# database errors. Default is on (false). When turned off, the
|
|
|
|
|
# code should use wfLastErrno() and wfLastError() to handle the
|
|
|
|
|
# situation as appropriate.
|
|
|
|
|
# Returns the previous state.
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfIgnoreSQLErrors( $newstate, $dbi = DB_LAST )
|
2003-04-14 23:10:40 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->setIgnoreErrors( $newstate );
|
|
|
|
|
} else {
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfFreeResult( $res, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
$db->freeResult( $res );
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfFetchObject( $res, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->fetchObject( $res, $dbi = DB_LAST );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfFetchRow( $res, $dbi = DB_LAST )
|
2004-06-10 13:02:27 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->fetchRow ( $res, $dbi = DB_LAST );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-06-10 13:02:27 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfNumRows( $res, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->numRows( $res, $dbi = DB_LAST );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfNumFields( $res, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->numFields( $res );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfFieldName( $res, $n, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->fieldName( $res, $n, $dbi = DB_LAST );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfInsertId( $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->insertId();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
}
|
2004-06-19 06:45:22 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfDataSeek( $res, $row, $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->dataSeek( $res, $row );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfLastErrno( $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->lastErrno();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-04-14 23:10:40 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfLastError( $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->lastError();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
}
|
2003-12-01 00:28:25 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfAffectedRows( $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->affectedRows();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
}
|
2003-12-01 00:28:25 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfLastDBquery( $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->lastQuery();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
}
|
2003-12-01 00:28:25 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_WRITE )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->set( $table, $var, $value, $cond );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
}
|
2003-12-01 00:28:25 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfGetSQL( $table, $var, $cond="", $dbi = DB_LAST )
|
2004-01-10 16:44:31 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->get( $table, $var, $cond );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-11-18 23:43:41 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfFieldExists( $table, $field, $dbi = DB_LAST )
|
2003-11-09 11:45:12 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->fieldExists( $table, $field );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-11-09 11:45:12 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfIndexExists( $table, $index, $dbi = DB_LAST )
|
2003-11-09 11:45:12 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->indexExists( $table, $index );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-17 05:49:39 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfInsertArray( $table, $array, $fname = "wfInsertArray", $dbi = DB_WRITE )
|
2004-01-17 05:49:39 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->insertArray( $table, $array, $fname );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-01-17 05:49:39 +00:00
|
|
|
}
|
|
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfGetArray( $table, $vars, $conds, $fname = "wfGetArray", $dbi = DB_LAST )
|
2004-01-17 05:49:39 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
return $db->getArray( $table, $vars, $conds, $fname );
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2003-11-09 11:45:12 +00:00
|
|
|
}
|
2004-01-10 16:44:31 +00:00
|
|
|
|
2004-06-15 15:00:54 +00:00
|
|
|
function wfUpdateArray( $table, $values, $conds, $fname = "wfUpdateArray", $dbi = DB_WRITE )
|
2004-03-23 10:17:50 +00:00
|
|
|
{
|
2004-06-15 15:00:54 +00:00
|
|
|
$db =& wfGetDB( $dbi );
|
2004-06-19 06:45:22 +00:00
|
|
|
if ( $db !== false ) {
|
|
|
|
|
$db->updateArray( $table, $values, $conds, $fname );
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2004-03-23 10:17:50 +00:00
|
|
|
}
|
|
|
|
|
|
2003-04-14 23:10:40 +00:00
|
|
|
?>
|