[英]Php + ibm_db2 error
I'm having a problem with a PHP connection to a DB2 database. 我在与DB2数据库的PHP连接方面遇到问题。 My systems specs are the following: 我的系统规格如下:
Operative System
[root@mxismspms POC]# uname -a Linux mxismspms.mx.ihost.com
2.6.18-419.el5 #1 SMP Wed Feb 22 22:40:57 EST 2017 x86_64 x86_64 x86_64 GNU/Linux
Php Version
php -v PHP 5.6.30 (cli) (built: Jan 19 2017 08:18:25) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
Php Loaded modules
php -m [PHP Modules]
bz2 calendar Core ctype curl date dom ereg exif fileinfo filter ftp gettext hash **ibm_db2** iconv json ldap libxml mhash mssql mysql mysqli mysqlnd odbc openssl pcntl pcre PDO pdo_dblib pdo_ibm pdo_mysql PDO_ODBC pdo_sqlite Phar posix readline Reflection session shmop SimpleXML sockets SPL standard sybase_ct sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter xsl zip zlib
As you can see i'm using ibm_db2 driver. 如您所见,我正在使用ibm_db2驱动程序。 The main issue is that connections to the DB2 database are not working when running from the Apache. 主要问题是从Apache运行时,与DB2数据库的连接不起作用。 My php script is the following: 我的PHP脚本如下:
$database = '****'; $user = '****'; $password = '****'; $hostname = '****'; $port = 5098;
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" . "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;"; $conn = db2_connect($conn_string, '', '');
if ($conn) {
echo "Connection succeeded.";
db2_close($conn); } else {
echo "Connection failed.";
print db2_conn_errormsg(); }
When in run it from the CLI it works fine, but it doesn't work when i run from the browser. 从CLI运行时,它工作正常,但从浏览器运行时,它不起作用。
php test2.php
Connection succeeded.
Also try with apache user. 也可以尝试使用apache用户。
su - apache -c 'php /var/www/html/POC/test2.php'
Connection succeeded.
From browser I don't much details and it doesn't work. 从浏览器看,我没有太多细节,它也不起作用。
Finally i give you my phpinfo driver and environment details. 最后,我给您我的phpinfo驱动程序和环境详细信息。
And in my Yii 2 application i see this error. 在我的Yii 2应用程序中,我看到此错误。
SQLSTATE= , SQLDriverConnect: -5005 [IBM][CLI Driver] SQL10007N Message "0" could not be retrieved. Reason code: "3".
Regards! 问候!
用pecl重新安装ibm_db2可解决此问题(pecl安装ibm_db2)!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.