From: Stig Bakken Date: Wed, 26 Jul 2000 09:57:06 +0000 (+0000) Subject: Multiple DB::connect or DB::factory calls using the same backend X-Git-Tag: PRE_FILE_COMPILE_API_CHANGE~131 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c63410f6bed7b2bf0536722ccfbe9b90cbb6ed82;p=php Multiple DB::connect or DB::factory calls using the same backend should work now. --- diff --git a/pear/DB.php b/pear/DB.php index 5a70356fd1..97e0f7077a 100644 --- a/pear/DB.php +++ b/pear/DB.php @@ -163,11 +163,12 @@ class DB { * error */ function &factory($type) { - if (!@include_once("DB/${type}.php")) { - return DB_ERROR_NOT_FOUND; - } + @include_once("DB/${type}.php"); $classname = 'DB_' . $type; - $obj = new $classname; + $obj = @new $classname; + if (!$obj) { + return new DB_Error(DB_ERROR_NOT_FOUND); + } return $obj; } @@ -192,11 +193,12 @@ class DB { $dsninfo = DB::parseDSN($dsn); $type = $dsninfo['phptype']; - if (!@include_once("DB/${type}.php")) { - return DB_ERROR_NOT_FOUND; - } + @include_once("DB/${type}.php"); $classname = 'DB_' . $type; - $obj = new $classname; + $obj = @new $classname; + if (!$obj) { + return new DB_Error(DB_ERROR_NOT_FOUND); + } $err = $obj->connect(&$dsninfo, $persistent); if (DB::isError($err)) { return $err;