Bug #72175 [Com]: Impossibility of creatiing multiple connections to Interbase with php 7.0
| From: | dregad at mantisbt dot org | 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