我希望有人可以帮我解决这个错误。我知道它弹出由于php没有识别php_ibm_db2.dll模块,但我已经尝试了一切,没有任何作用。我寻找过教程,但其中很多都是陈旧的,并且引用了旧版本的IBM产品,这使我更难理解。
此处发布的较早的类似问题要么得不到回答,要么模糊地解决。
以下是基础知识:
我需要使用php连接到数据库并检索数据。我尝试使用odbc但是我收到了IBM DB2 ODBC驱动程序和用于ODBC的IBM数据服务器驱动程序的“功能不受支持”,因此我废弃了这个想法并决定使用db2函数。
这是我尝试过的:
*我以前将PHP配置为包含Firebird标头,所以我知道我修改了正确的.conf和amp;的.ini。 PHP文件夹也在环境变量中定义。
PHP错误日志包含以下内容:
PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ibm_db2.dll' - %1 is not a valid Win32 application.
代码:
$username = "username";
$password = "password";
$hostname = "localhost";
$port = "1527";
$database="C:\Users\me\Desktop\dbname"; //not real definition
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;"."HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$username;PWD=$password";
$connection = db2_connect($conn_string, '', '');
if ($connection) {
echo "Connection succeeded."."\n";
}
else {
echo "Connection failed."."\n";
echo db2_conn_errormsg ($connection);
}
提前谢谢
答案 0 :(得分:1)
感谢@RiggsFolly和我在这里再次找不到的问题,我现在想出来了。
对于任何试图在Windows x64中启用db2功能的人而言,认为php.net安装指南不是非常具体,这里是步骤(或者至少是我用来解决它的步骤):
安装32位WAMPServer
安装IBM Express-C x32。它随IBM DB2 ODBC驱动程序一起提供。
根据您的PHP版本下载php_ibm_db2.dll。复制到PHP扩展文件夹并在PHP.ini中启用它
要为x32 ODBC驱动程序配置DSN,请使用C:\ Windows \ SysWOW64 \ odbcad32.exe中的x32 ODBC数据源管理器。
重新启动WAMPServer并检查PHPInfo()。 ibm db2现在应该拥有它自己的部分
我希望这对某人有用。
OR
只需从PECL下载合适的版本。我刚刚发现了这一点,我感到非常愚蠢。