*/
/**
- * The code returned by many methods upon success
+ * The code returned by many methods upon success970
*/
define('DB_OK', 1);
// expose php errors with sufficient debug level
include_once "DB/{$type}.php";
} else {
- @include_once "DB/{$type}.php";
+ include_once "DB/{$type}.php";
}
- $classname = "DB_${type}";
+ $classname = "DB_{$type}";
if (!class_exists($classname)) {
$tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null,
*
* @uses DB::parseDSN(), DB_common::setOption(), PEAR::isError()
*/
- static function &connect($dsn, $options = array())
+ static function connect($dsn, $options = array())
{
$dsninfo = DB::parseDSN($dsn);
$type = $dsninfo['phptype'];
if (isset($options['debug']) && $options['debug'] >= 2) {
// expose php errors with sufficient debug level
- include_once "DB/${type}.php";
+ include_once "DB/{$type}.php";
} else {
- @include_once "DB/${type}.php";
+ @include_once "DB/{$type}.php";
}
- $classname = "DB_${type}";
+ $classname = "DB_{$type}";
if (!class_exists($classname)) {
$tmp = PEAR::raiseError(null, DB_ERROR_NOT_FOUND, null, null,
"Unable to include the DB/{$type}.php"
return $tmp;
}
- @$obj = new $classname;
+ $obj = new $classname;
foreach ($options as $option => $value) {
$test = $obj->setOption($option, $value);
*/
static function isError($value)
{
- return is_object($value) && is_a($value, 'DB_Error');
+ return is_object($value) && is_a($value, 'DB_Error');
}
// }}}
*
* @return boolean whether $query is a data manipulation query
*/
- function isManip($query)
+ static function isManip($query)
{
$manips = 'INSERT|UPDATE|DELETE|REPLACE|'
. 'CREATE|DROP|'
* @return string the error message or false if the error code was
* not recognized
*/
- function errorMessage($value)
+
+ static function errorMessage($value)
{
static $errorMessages;
if (!isset($errorMessages)) {
$parsed['dbsyntax'] = $str;
}
- if (!count($dsn)) {
+
+ if (is_null($dsn)){
return $parsed;
}
+
// Get (if found): username and password
// $dsn => username:password@protocol+hostspec/database
if (($at = strrpos($dsn,'@')) !== false) {
$parsed['database'] = rawurldecode($dsn);
} else {
// /database?param1=value1¶m2=value2
- $parsed['database'] = rawurldecode(substr($dsn, 0, $pos));
+ $parsed['database'] = rawurldecode(substr($dsn, 0, $pos));
$dsn = substr($dsn, $pos + 1);
if (strpos($dsn, '&') !== false) {
$opts = explode('&', $dsn);
* defined, and means that we deal with strings and array in the same
* manner. */
$dsnArray = DB::parseDSN($dsn);
-
+
if ($hidePassword) {
$dsnArray['password'] = 'PASSWORD';
}
if (is_string($dsn) && strpos($dsn, 'tcp') === false && $dsnArray['protocol'] == 'tcp') {
$dsnArray['protocol'] = false;
}
-
+
// Now we just have to construct the actual string. This is ugly.
$dsnString = $dsnArray['phptype'];
if ($dsnArray['dbsyntax']) {
$dsnString .= ':'.$dsnArray['port'];
}
$dsnString .= '/'.$dsnArray['database'];
-
+
/* Option handling. Unfortunately, parseDSN simply places options into
* the top-level array, so we'll first get rid of the fields defined by
* DB and see what's left. */
return $dsnString;
}
-
+
// }}}
}
*
* @see PEAR_Error
*/
- function DB_Error($code = DB_ERROR, $mode = PEAR_ERROR_RETURN,
+ function __construct($code = DB_ERROR, $mode = PEAR_ERROR_RETURN,
$level = E_USER_NOTICE, $debuginfo = null)
{
if (is_int($code)) {
- $this->PEAR_Error('DB Error: ' . DB::errorMessage($code), $code,
+ parent::__construct('DB Error: ' . DB::errorMessage($code), $code,
$mode, $level, $debuginfo);
} else {
- $this->PEAR_Error("DB Error: $code", DB_ERROR,
+ parent::__construct("DB Error: $code", DB_ERROR,
$mode, $level, $debuginfo);
}
}
*
* @return void
*/
- function DB_result(&$dbh, $result, $options = array())
+ function __construct(&$dbh, $result, $options = array())
{
$this->autofree = $dbh->options['autofree'];
$this->dbh = &$dbh;
*
* @return void
*/
- function DB_row(&$arr)
+ function __construct(&$arr)
{
foreach ($arr as $key => $value) {
$this->$key = &$arr[$key];