@@ -137,7 +137,7 @@ protected function isDebug()
137137 /**
138138 * if passing an existing resource and naming, don't need the other params.
139139 *
140- * @param string|resource|PDO $databaseNameOrResource
140+ * @param string|resource|PDO|Odbc\Connection $databaseNameOrResource
141141 * @param string $userOrI5NamingFlag 0 = DB2_I5_NAMING_OFF or 1 = DB2_I5_NAMING_ON
142142 * @param string $password
143143 * @param string $transportType (http, ibm_db2, odbc, ssh, local)
@@ -158,7 +158,7 @@ public function __construct($databaseNameOrResource, $userOrI5NamingFlag = '0',
158158 }
159159
160160 // stop any types that are not valid for first parameter. Invalid values may cause toolkit to try to create another database connection.
161- if (!is_string ($ databaseNameOrResource ) && !is_resource ($ databaseNameOrResource ) && ((!is_object ($ databaseNameOrResource ) || (is_object ($ databaseNameOrResource ) && get_class ($ databaseNameOrResource ) !== PDO ::class)))) {
161+ if (!is_string ($ databaseNameOrResource ) && !is_resource ($ databaseNameOrResource ) && ((!is_object ($ databaseNameOrResource ) || (is_object ($ databaseNameOrResource ) && ! in_array ( get_class ($ databaseNameOrResource ), [ PDO ::class, \ Odbc \Connection::class], true ) )))) {
162162
163163 // initialize generic message
164164 $ this ->error = "\nFailed to connect. databaseNameOrResource " . var_export ($ databaseNameOrResource , true ) . " not valid. " ;
@@ -224,7 +224,7 @@ public function __construct($databaseNameOrResource, $userOrI5NamingFlag = '0',
224224 if ($ this ->isDebug ()) {
225225 $ this ->debugLog ("Re-using existing db connection with schema separator: $ schemaSep " );
226226 }
227- } elseif ($ transportType === 'odbc ' && $ isResource ) {
227+ } elseif ($ transportType === 'odbc ' && ( $ isResource || $ databaseNameOrResource instanceof \ Odbc \Connection) ) {
228228 $ conn = $ databaseNameOrResource ;
229229 $ this ->_i5NamingFlag = $ userOrI5NamingFlag ;
230230 $ schemaSep = ($ this ->_i5NamingFlag ) ? '/ ' : '. ' ;
0 commit comments