]> granicus.if.org Git - php/commitdiff
* added Colin's connect/factory error reporting fix
authorStig Bakken <ssb@php.net>
Thu, 19 Apr 2001 02:32:33 +0000 (02:32 +0000)
committerStig Bakken <ssb@php.net>
Thu, 19 Apr 2001 02:32:33 +0000 (02:32 +0000)
pear/DB.php

index b35f51adbebf7923e38d7052a8e1b516a22005ca..b5054971ba324898668ca320647b48e48cf988c6 100644 (file)
@@ -185,13 +185,14 @@ class DB
         @include_once("DB/${type}.php");
 
         $classname = "DB_${type}";
-        @$obj =& new $classname;
 
-        if (!$obj) {
+        if (!class_exists($classname)) {
             return PEAR::raiseError(DB_ERROR_NOT_FOUND,
                                     null, null, null, null, 'DB_Error', true);
         }
 
+        @$obj =& new $classname;
+
         return $obj;
     }
 
@@ -227,19 +228,18 @@ class DB
             $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) {
+        $classname = "DB_${type}";
+        if (!class_exists($classname)) {
             return PEAR::raiseError(DB_ERROR_NOT_FOUND,
                                     null, null, null, null, 'DB_Error', true);
         }
 
+        @$obj =& new $classname;
+
         if (is_array($options)) {
             foreach ($options as $option => $value) {
                 $test = $obj->setOption($option, $value);