Bug #72175 [Com]: Impossibility of creatiing multiple connections to Interbase with php 7.0

From: Date: Thu, 26 May 2016 15:45:48 +0000
Subject: Bug #72175 [Com]: Impossibility of creatiing multiple connections to Interbase with php 7.0
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-201285@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=72175&edit=1 ID: 72175 Comment by: dregad at mantisbt dot org Reported by: netvicious at gmail dot com Summary: Impossibility of creatiing multiple connections to Interbase with php 7.0 Status: Open Type: Bug Package: InterBase related Operating System: Ubuntu 16.04 LTS PHP Version: 7.0.6 Block user comment: N Private report: N New Comment: A user of ADOdb library reported the same problem (see https://github.com/ADOdb/ADOdb/issues/231). Previous Comments: ------------------------------------------------------------------------ [2016-05-09 07:23:18] netvicious at gmail dot com Description: ------------ If you have one open link to an Interbase/Firebird database and you open **another** one to the same database the first link it's closed. On my php.ini I have this (exactly the same than on PHP 5.6): ibase.allow_persistent = 1 ; Maximum number of persistent links. -1 means no limit. ibase.max_persistent = -1 ; Maximum number of links (persistent + non-persistent). -1 means no limit. ibase.max_links = -1 The same script below was running perfectly on PHP 5.6 NikiC on StackOverflow writed this: In particular, I don't think this line is correct: lxr.php.net/xref/PHP_MASTER/ext/interbase/interbase.c#943 This zend_list_close should probably be a zend_list_delete, otherwise it will simply always destroy the resource. Already posted to: http://stackoverflow.com/questions/37049534/multiple-connections-to-interbase-with-php-7-0 https://bugs.launchpad.net/ubuntu/+source/php7.0/+bug/1578600 Regards, Test script: --------------- // DB_xxx are defined variables with the users, password, ..... of the database. // We have the same problem if we use ibase_pconnect or ibase_connect $conx = ibase_connect(DB_HOST . ":" . DB_NAME,DB_USER,DB_PWD,DB_CHARACTER) or die(ibase_errcode() . ' ' . ibase_errmsg()); $conx2 = ibase_connect(DB_HOST . ":" . DB_NAME,DB_USER,DB_PWD,DB_CHARACTER) or die(ibase_errcode() . ' ' . ibase_errmsg()); $sql = 'SELECT something from somewhere'; $query = ibase_query($conx, $sql); while ($row = ibase_fetch_assoc($query)) { echo $row['something']; } Expected result: ---------------- $conx should keep the database connection instead of be closed. Actual result: -------------- The test script should not write nothing, but on the error log you will see something like: supplied resource is not a valid Firebird/InterBase link resource in .... ibase_fetch_assoc(): Dynamic SQL Error SQL error code = -504 Invalid cursor reference Cursor is not open .... It seems $conx has been closed when creating the $conx2 connection. ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=72175&edit=1

« previous php.bugs (#201285) next »