* DB_common::setOption for more information on connection
* options.
*
- * @return object a newly created DB object, or a DB error code on
- * error
+ * @return object a newly created DB connection object, or a DB
+ * error object on error
*
* @see DB::parseDSN
+ * @see DB::isError
*/
function &connect($dsn, $options = false)
{
}
$type = $dsninfo["phptype"];
- @include_once "DB/${type}.php";
- $classname = "DB_${type}";
- @$obj =& new $classname;
+ if (is_array($options) && isset($options["debug"]) &&
+ $options["debug"] >= 2) {
+ // expose php errors with sufficient debug level
+ include_once "DB/${type}.php";
+ $classname = "DB_${type}";
+ $obj =& new $classname;
+ } else {
+ @include_once "DB/${type}.php";
+ $classname = "DB_${type}";
+ @$obj =& new $classname;
+ }
if (!$obj) {
return new DB_Error(DB_ERROR_NOT_FOUND);
$err = $obj->connect($dsninfo, $obj->getOption('persistent'));
if (DB::isError($err)) {
+ $err->addUserInfo($dsn);
return $err;
}
}
if (DB::isError($value)) {
- $value = $value->code;
+ $value = $value->getCode();
}
return $errorMessages[$value];