ID:               3723
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
 Status:           Open
 Bug Type:         ODBC related
 Operating System: Win2000 Pro
-PHP Version:      3.0.15
+PHP Version:      4.3.0-dev
 New Comment:

connection handles are reused when connecting with same dsn
instead of opening a new connection, so close will close the connection
for both connects

there should be an optional force_new parameter or flag
like with mysql_connect

changed to feature request


Previous Comments:
------------------------------------------------------------------------

[2000-03-03 19:59:14] [EMAIL PROTECTED]

Cross-nested connections to the same ODBC Source fails.

It seems the first odbc_close() closes all other connections to the
same DSN.

This works OK... (Correctly nested)
   $A = odbc_connect( DSN );
   $B = odbc_connect( DSN );
   odbc_exec( $A );
   odbc_exec( $B );
   odbc_close( $B );
   odbc_close( $A );

This works OK... (Non nested)
   $A = odbc_connect( DSN );
   odbc_exec( $A );
   odbc_close( $A );
   $B = odbc_connect( DSN );
   odbc_exec( $B );
   odbc_close( $B );

This works FAILS... (Cross-nested)
   $A = odbc_connect( DSN );
   $B = odbc_connect( DSN );
   odbc_exec( $A );
   odbc_close( $A );
   odbc_exec( $B );
   odbc_close( $B );

Warning: Bad ODBC connection number (1) in xxxx.php on line [line
number for 'odbc_exec( $B );']

Using different DSNs works... even if the two DSNs point to the same
database.

I tested it using PHP 3.0.15 and 4 beta 4, using JET (Access) and
MSSQL.

This is a serious problem if you use ODBC for PHPLIB, which doesn't
close its connections, and use the same DSN elsewhere on your code.

The only workaround seems to either use a separate DSN for PHPLIB and
other queries, or change PHPLIB so it closes the database connections
after page_open and reopens it at page_close



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=3723&edit=1

Reply via email to