[php-maint] Bug#834579: /usr/bin/php5: php5: when connecting using odbc and later mysqli in the same script i got: Couldn't fetch mysqli

Antonio bugdebian at wirelessmundi.com
Wed Aug 17 08:36:07 UTC 2016


Package: php5-cli
Version: 5.6.24+dfsg-0+deb8u1
Severity: normal
File: /usr/bin/php5

when using odbc and mysqli in same php process the mysqli api will not work and no errors messages as thrown, only the warning message
"Warning: mysqli::query(): Couldn't fetch mysqli in /root/mysql_phpbug.php on line 36"


Below you can find a simple script that reproduces the problem. 

<?php
// when connecting to odbc will make fail all the mysql connections
using_odbc();
//sleep(5);
using_mysqli_obj();
using_mysqli();

function using_mysqli()
{
	echo "*** MySQLi \n";
	$link = mysqli_connect("localhost", "root", "m1sq7passwd", "tel_app", "3306", "/var/run/mysqld/mysqld.sock");
	if (!$link) { echo "Error connecting to MYSQL [".mysqli_connect_errno()."] ".mysqli_connect_error()."\n"; }
	else {
		$result = @mysqli_query($link, "select count(*) as total from client_limit;");
		if (!is_object($result)) {
			echo "no results found, error: ".mysqli_error($link)."\n";
		}
		else {
			$tmp = mysqli_fetch_array($result, MYSQLI_ASSOC);
			mysqli_free_result($result);
			print_r($tmp);
		}
		if (!mysqli_close($link)) {
			echo "Fail to disconnect db link \n";
		}
		unset($link);
	}
	echo "***\n";
}
function using_mysqli_obj() 
{
	echo "*** MySQLi OBJ\n";
	$mysqli = new mysqli('localhost', 'root', 'm1sq7passwd', 'tel_app');
	if ($mysqli->connect_error) { echo ('Connect Error (' . $mysqli->connect_errno . ') '.$mysqli->connect_error); }
	else {
		$result = $mysqli->query("select count(*) as total from client_limit;", MYSQLI_USE_RESULT);
		if (!is_object($result)) {
			echo "no results found, error: ".$mysqli->error."\n";
		}
		else {
			$tmp = $result->fetch_object();
			print_r($tmp);
			$result->close();
		}
		$mysqli->close();
	}
	echo "*** \n ";
}
function using_odbc()
{
	echo "*** ODBC \n";
	$conn = odbc_connect("localhost_tel_cdr", false, false);
	if (!$conn) { echo "fail to connect using odbc ".odbc_errormsg(); }
	else {
		$res = odbc_exec($conn, "select count(*) as total_cdr from cdr where (start_stamp >= '1470751734' ) and (start_stamp <= '1471356534' );");
		if (!$res) {
			echo "Fail to execute sql ".odbc_errormsg();
		}
		else {
			$row = odbc_fetch_array($res);
			print_r($row);
			odbc_free_result($res);
		}
		odbc_close($conn);
	}
	echo "***";
}

?>



-- Package-specific info:
==== Additional PHP 5 information ====

++++ PHP 5 SAPI (php5query -S): ++++
fpm
cli
apache2
cgi

++++ PHP 5 Extensions (php5query -M -v): ++++
mysqli (Enabled for fpm by maintainer script)
mysqli (Enabled for cli by maintainer script)
mysqli (Enabled for apache2 by maintainer script)
mysqli (Enabled for cgi by maintainer script)
curl (Enabled for fpm by maintainer script)
curl (Enabled for cli by maintainer script)
curl (Enabled for apache2 by maintainer script)
curl (Enabled for cgi by maintainer script)
mcrypt (Enabled for fpm by maintainer script)
mcrypt (Enabled for cli by maintainer script)
mcrypt (Enabled for apache2 by maintainer script)
mcrypt (Enabled for cgi by maintainer script)
pdo_sqlite (Enabled for fpm by maintainer script)
pdo_sqlite (Enabled for cli by maintainer script)
pdo_sqlite (Enabled for apache2 by maintainer script)
pdo_sqlite (Enabled for cgi by maintainer script)
odbc (Enabled for fpm by maintainer script)
odbc (Enabled for cli by maintainer script)
odbc (Enabled for apache2 by maintainer script)
odbc (Enabled for cgi by maintainer script)
pdo (Enabled for fpm by maintainer script)
pdo (Enabled for cli by maintainer script)
pdo (Enabled for apache2 by maintainer script)
pdo (Enabled for cgi by maintainer script)
mysql (Enabled for fpm by maintainer script)
mysql (Enabled for cli by maintainer script)
mysql (Enabled for apache2 by maintainer script)
mysql (Enabled for cgi by maintainer script)
imap (Enabled for fpm by maintainer script)
imap (Enabled for cli by maintainer script)
imap (Enabled for apache2 by maintainer script)
imap (Enabled for cgi by maintainer script)
ssh2 (Enabled for fpm by local administrator)
ssh2 (Enabled for cli by local administrator)
ssh2 (Enabled for apache2 by local administrator)
ssh2 (Enabled for cgi by local administrator)
opcache (Enabled for fpm by maintainer script)
opcache (Enabled for cli by maintainer script)
opcache (Enabled for apache2 by maintainer script)
opcache (Enabled for cgi by maintainer script)
sqlite3 (Enabled for fpm by maintainer script)
sqlite3 (Enabled for cli by maintainer script)
sqlite3 (Enabled for apache2 by maintainer script)
sqlite3 (Enabled for cgi by maintainer script)
pdo_odbc (Enabled for fpm by maintainer script)
pdo_odbc (Enabled for cli by maintainer script)
pdo_odbc (Enabled for apache2 by maintainer script)
pdo_odbc (Enabled for cgi by maintainer script)
gd (Enabled for fpm by maintainer script)
gd (Enabled for cli by maintainer script)
gd (Enabled for apache2 by maintainer script)
gd (Enabled for cgi by maintainer script)
json (Enabled for fpm by maintainer script)
json (Enabled for cli by maintainer script)
json (Enabled for apache2 by maintainer script)
json (Enabled for cgi by maintainer script)
pdo_mysql (Enabled for fpm by maintainer script)
pdo_mysql (Enabled for cli by maintainer script)
pdo_mysql (Enabled for apache2 by maintainer script)
pdo_mysql (Enabled for cgi by maintainer script)

++++ Configuration files: ++++
[PHP]
zlib.output_compression = On
serialize_precision = 100
expose_php = Off
max_execution_time = 900
max_input_time = 900
memory_limit = 512M
error_reporting  =  E_ALL
display_errors = On
display_startup_errors = On
html_errors = Off
variables_order = "EGPCS"
request_order = "GP"
register_argc_argv = Off
post_max_size = 512M
enable_dl = On
file_uploads = On
upload_max_filesize = 512M
max_file_uploads = 20
[Date]
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
sqlite3.extension_dir = /usr/lib/sqlite3
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=
[Phar]
[Syslog]
define_syslog_variables  = Off
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = Off
[SQL]
sql.safe_mode = Off
[ODBC]
odbc.allow_persistent = On
odbc.check_persistent = On
odbc.max_persistent = -1
odbc.max_links = -1
odbc.defaultlrl = 4096
odbc.defaultbinmode = 1
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[OCI8]
[PostgresSQL]
pgsql.allow_persistent = On
pgsql.auto_reset_persistent = Off
pgsql.max_persistent = -1
pgsql.max_links = -1
pgsql.ignore_notice = 0
pgsql.log_notice = 0
[Sybase-CT]
sybct.allow_persistent = On
sybct.max_persistent = -1
sybct.max_links = -1
sybct.min_server_severity = 10
sybct.min_client_severity = 10
[bcmath]
bcmath.scale = 0
[browscap]
[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[MSSQL]
mssql.allow_persistent = On
mssql.max_persistent = -1
mssql.max_links = -1
mssql.min_error_severity = 10
mssql.min_message_severity = 10
mssql.compatability_mode = Off
mssql.secure_connection = Off
[Assertion]
[COM]
[mbstring]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled = 1
soap.wsdl_cache_dir = "/tmp"
soap.wsdl_cache_ttl = 86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]

**** /etc/php5/cli/conf.d/20-imap.ini ****
extension=imap.so

**** /etc/php5/cli/conf.d/20-ssh2.ini ****
extension=ssh2.so

**** /etc/php5/cli/conf.d/20-pdo_odbc.ini ****
extension=pdo_odbc.so

**** /etc/php5/cli/conf.d/20-mcrypt.ini ****
extension=mcrypt.so

**** /etc/php5/cli/conf.d/20-json.ini ****
extension=json.so

**** /etc/php5/cli/conf.d/20-pdo.ini ****
extension=pdo.so

**** /etc/php5/cli/conf.d/20-curl.ini ****
extension=curl.so

**** /etc/php5/cli/conf.d/20-mysql.ini ****
extension=mysql.so

**** /etc/php5/cli/conf.d/20-odbc.ini ****
extension=odbc.so

**** /etc/php5/cli/conf.d/20-pdo_sqlite.ini ****
extension=pdo_sqlite.so

**** /etc/php5/cli/conf.d/05-opcache.ini ****
zend_extension=opcache.so

**** /etc/php5/cli/conf.d/20-sqlite3.ini ****
extension=sqlite3.so

**** /etc/php5/cli/conf.d/20-pdo_mysql.ini ****
extension=pdo_mysql.so

**** /etc/php5/cli/conf.d/20-mysqli.ini ****
extension=mysqli.so

**** /etc/php5/cli/conf.d/20-gd.ini ****
extension=gd.so


-- System Information:
Debian Release: 8.5
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.4.16 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages php5-cli depends on:
ii  libbz2-1.0        1.0.6-7+b3
ii  libc6             2.19-18+deb8u4
ii  libcomerr2        1.42.12-1.1
ii  libdb5.3          5.3.28-9
ii  libedit2          3.1-20140620-2
ii  libgssapi-krb5-2  1.12.1+dfsg-19+deb8u2
ii  libk5crypto3      1.12.1+dfsg-19+deb8u2
ii  libkrb5-3         1.12.1+dfsg-19+deb8u2
ii  libmagic1         1:5.22+15-2+deb8u1
ii  libonig2          5.9.5-3.2
ii  libpcre3          2:8.35-3.3+deb8u4
ii  libqdbm14         1.8.78-5+b1
ii  libssl1.0.0       1.0.1t-1+deb8u2
ii  libxml2           2.9.1+dfsg1-5+deb8u2
ii  mime-support      3.58
ii  php5-common       5.6.24+dfsg-0+deb8u1
ii  php5-json         1.3.6-1
ii  tzdata            2016f-0+deb8u1
ii  ucf               3.0030
ii  zlib1g            1:1.2.8.dfsg-2+b1

Versions of packages php5-cli recommends:
pn  php5-readline  <none>

Versions of packages php5-cli suggests:
ii  php-pear  5.6.24+dfsg-0+deb8u1

Versions of packages php5-common depends on:
ii  libc6   2.19-18+deb8u4
ii  lsof    4.86+dfsg-1
ii  psmisc  22.21-2
ii  sed     4.2.2-4+b1
ii  ucf     3.0030

Versions of packages php5-common suggests:
pn  php5-user-cache  <none>

-- no debconf information



More information about the pkg-php-maint mailing list