我正在尝试使用IBM-DB2
连接odbc_connect
数据库。下面是测试IBM-DB2
数据库
$conn = odbc_connect("DRIVER={IBM DB2};SERVER=10.100.200.99;DATABASE=TESTDB;","john","doe");
if (!($conn)) {
echo "<p>Connection to DB via ODBC failed: ";
echo odbc_errormsg ($conn );
echo "</p>\n";
}
在 Windows 中执行时会抛出异常
警告:odbc_connect():SQL错误:[Microsoft] [ODBC驱动程序管理器] 未找到数据源名称且未指定默认驱动程序,SQL状态 IM002
在 Linux 中执行时,它会抛出异常
警告:odbc_connect():SQL错误:[unixODBC] [IBM] [CLI驱动程序] SQL30081N检测到通信错误。通讯 正在使用的协议:&#34; TCP / IP&#34;。正在使用的通信API: &#34;插座和#34 ;.检测到错误的位置:&#34; 127.0.0.1&#34;
IBM-DB2
数据库?答案 0 :(得分:1)
odbc_connect documentation
如果在连接字符串中仅使用DSN,则odbc.ini(或等效的)需要指定其他详细信息(hostname / ip-address,port-number,database name)等。
如果您没有在连接字符串中使用DSN,那么该连接字符串必须包含Db2服务器的主机名/ IP地址,以及端口号和数据库名称以及您需要的任何其他属性。
Linux上的症状很可能是由于连接字符串或DSN定义不正确或不完整,或Db2实例未启动等简单问题,或者Db2实例未在指定的IP地址上侦听指定的端口号。
PHP可以在Windows / Unix等上与Db2一起使用。
考虑使用PHP的pdo_ibm或ibm_db2扩展来更好地集成PHP和Db2(尽管这些与您的症状无关)。