Deprecated: Assigning the return value of new by reference is deprecated in /home/bluestat/public_html/source/index.php on line 477
load('db', null);
/**
* MySQL Database Abstraction Layer
*
* This framework is a function wrapper for MySQL functions so we can have
* better error reporting and query reporting.
*
* @author Blue Static
* @copyright Copyright ©2002 - [#]year[#], Blue Static
* @version $Revision$
* @package ISSO
*
*/
class DB_MySQL extends DB_Abstract
{
/**
* Command mapping list
* @var array
* @access private
*/
var $commands = array(
'pconnect' => '$this->command_mysql_pconnect',
'connect' => '$this->command_mysql_connect',
'query' => '$this->command_mysql_query',
'error_num' => 'mysql_errno',
'error_str' => 'mysql_error',
'escape_string' => '$this->command_mysql_escape_string',
'escape_binary' => '$this->escape_binary',
'fetch_assoc' => 'mysql_fetch_assoc',
'fetch_row' => 'mysql_fetch_row',
'fetch_object' => 'mysql_fetch_object',
'free_result' => 'mysql_free_result',
'insert_id' => 'mysql_insert_id',
'num_rows' => 'mysql_num_rows',
'affected_rows' => 'mysql_affected_rows'
);
// ###################################################################
/**
* Constructor
*/
function __construct(&$registry)
{
parent::__construct($registry);
}
// ###################################################################
/**
* (PHP 4) Constructor
*/
function DB_MySQL(&$registry)
{
$this->__construct($registry);
}
// ###################################################################
/**
* Wrapper: mysql_pconnect
*
* @access protected
*
* @param string Server name
* @param string User name
* @param string Password
* @param string Database
*
* @return integer DB-Link
*/
function command_mysql_pconnect($server, $user, $password, $database)
{
$link = mysql_pconnect($server, $user, $password);
$this->select_db($database, $link);
return $link;
}
// ###################################################################
/**
* Wrapper: mysql_connect
*
* @access protected
*
* @param string Server name
* @param string User name
* @param string Password
* @param string Database
*
* @return integer DB-Link
*/
function command_mysql_connect($server, $user, $password, $database)
{
$link = mysql_connect($server, $user, $password, true);
$this->select_db($database, $link);
return $link;
}
// ###################################################################
/**
* Wrapper: mysql_select_db
*
* @access protected
*
* @param string Database name
* @param integer DB-Link
*/
function select_db($database, $link)
{
if (!mysql_select_db($database, $link))
{
$this->error('Cannot use the database \'' . $database . '\'');
}
}
// ###################################################################
/**
* Wrapper: mysql_query
*
* @access protected
*
* @param integer DB-Link
* @param string Query string
*
* @return integer Result
*/
function command_mysql_query($link, $string)
{
return mysql_query($string, $link);
}
// ###################################################################
/**
* Escapes a binary string for insertion into the database
*
* @access public
*
* @param string Unescaped data
*
* @return string Escaped binary data
*/
function escape_binary($binary)
{
return mysql_escape_string($binary);
}
// ###################################################################
/**
* Wrapper: mysql(_real)_escape_string
*
* @access protected
*
* @param integer DB-Link
* @param string Unescaped text
*
* @return string Escaped text
*/
function command_mysql_escape_string($link, $string)
{
if (function_exists('mysql_real_escape_string'))
{
return @mysql_real_escape_string($string, $link);
}
else
{
return @mysql_escape_string($string);
}
}
// ###################################################################
/**
* Not supported: unescape binary string
*
* @access protected
*
* @param string Escaped data
*
* @return string Same data
*/
function command_unescape_binary($string)
{
return $string;
}
// ###################################################################
/**
* Starts a database transaction
*
* @access public
*/
function transaction_start()
{
$this->query("BEGIN WORK");
}
// ###################################################################
/**
* Saves current transaction steps as a savepoint
*
* @access public
*
* @param string Named savepoint
*/
function transaction_savepoint($name)
{
$this->query("SAVEPOINT $name");
}
// ###################################################################
/**
* Reverts a transaction back to a given savepoint
*
* @access public
*
* @param string Named savepoint
*/
function transaction_rollback($name = null)
{
$this->query("ROLLBACK" . ($name != null ? " TO SAVEPOINT $name" : ""));
}
// ###################################################################
/**
* Commits a database transaction
*
* @access public
*/
function transaction_commit()
{
$this->query("COMMIT");
}
}
/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
|| # $Id$
|| ###################################################################
\*=====================================================================*/
?>