diff --git a/ToolkitApi/Toolkit.php b/ToolkitApi/Toolkit.php index 180bbb9..6c73b86 100644 --- a/ToolkitApi/Toolkit.php +++ b/ToolkitApi/Toolkit.php @@ -137,7 +137,7 @@ protected function isDebug() /** * if passing an existing resource and naming, don't need the other params. * - * @param string|resource|PDO $databaseNameOrResource + * @param string|resource|PDO|Odbc\Connection $databaseNameOrResource * @param string $userOrI5NamingFlag 0 = DB2_I5_NAMING_OFF or 1 = DB2_I5_NAMING_ON * @param string $password * @param string $transportType (http, ibm_db2, odbc, ssh, local) @@ -158,7 +158,7 @@ public function __construct($databaseNameOrResource, $userOrI5NamingFlag = '0', } // stop any types that are not valid for first parameter. Invalid values may cause toolkit to try to create another database connection. - if (!is_string($databaseNameOrResource) && !is_resource($databaseNameOrResource) && ((!is_object($databaseNameOrResource) || (is_object($databaseNameOrResource) && get_class($databaseNameOrResource) !== PDO::class)))) { + if (!is_string($databaseNameOrResource) && !is_resource($databaseNameOrResource) && ((!is_object($databaseNameOrResource) || (is_object($databaseNameOrResource) && !in_array(get_class($databaseNameOrResource), [PDO::class, \Odbc\Connection::class], true))))) { // initialize generic message $this->error = "\nFailed to connect. databaseNameOrResource " . var_export($databaseNameOrResource, true) . " not valid."; @@ -224,7 +224,7 @@ public function __construct($databaseNameOrResource, $userOrI5NamingFlag = '0', if ($this->isDebug()) { $this->debugLog("Re-using existing db connection with schema separator: $schemaSep"); } - } elseif ($transportType === 'odbc' && $isResource) { + } elseif ($transportType === 'odbc' && ($isResource || $databaseNameOrResource instanceof \Odbc\Connection)) { $conn = $databaseNameOrResource; $this->_i5NamingFlag = $userOrI5NamingFlag; $schemaSep = ($this->_i5NamingFlag) ? '/' : '.';