PHP - odbc_connect() - SQL错误

时间:2018-04-17 07:19:05

标签: php db2 odbc

我正在尝试使用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数据库?

1 个答案:

答案 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(尽管这些与您的症状无关)。