2012-11-08 88 views
0

我在连接IBM DB2时出现以下错误。PHP DB2连接错误

Connection failed.[unixODBC][Driver Manager]Data source name not found, and no default driver specified SQLCODE=0 

这是我的phpinfo中db2的配置。

IBM DB2, Cloudscape and Apache Derby support: enabled 
Module release : 1.9.4 
Module revision : $Revision: 327944 $ 
Binary data mode (ibm_db2.binmode) : DB2_BINARY 
DB2 instance name (ibm_db2.instance_name) ; no value 

Plz帮我连接数据库。

脚本如下。

$database = 'dbT'; 
$user = 'user'; 
$password = 'pswd'; 
$hostname = '10.250.10.11'; 
$port = 456; 


$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" . 
    "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;"; 
$conn = db2_connect($conn_string, '', ''); 


print $conn; 

if ($conn) { 
    echo "Connection succeeded."; 
    db2_close($conn); 
} 
else { 
print($conn); 
    echo "Connection failed."; 
    die(db2_conn_errormsg()); 
} 
+0

看起来您的脚本无法找到或没有打开IBM DB2 ODBC驱动程序的权限。 – dan1111

回答

1

数据源名称未找到和指定默认驱动程序SQLCODE = 0

unixODBC驱动程序管理器无法找到驱动程序的列表称为[IBM DB2 ODBC驱动程序]驱动程序在其odbcinst.ini文件中。

运行: -

odbcinst -j 

这将显示是这样的: -

unixODBC 2.3.0 
DRIVERS............: /etc/odbcinst.ini 
SYSTEM DATA SOURCES: /etc/odbc.ini 
FILE DATA SOURCES..: /etc/ODBCDataSources 
USER DATA SOURCES..: /home/richard/.odbc.ini 
SQLULEN Size.......: 4 
SQLLEN Size........: 4 
SQLSETPOSIROW Size.: 2 

采取为您的数据源的 “Drivers” 文件看看。如果不在那里,你需要添加一个。如果有,请检查被引用的库是否位于机器库路径中。