http://blog.csdn.net/emili/article/details/4263084
现象:
一台 Windows 服务器,装有 SQL Server 数据库,除了可以访问本地的 SQL Server 外,还可以访问另一台机器的 SQL Server. 通过配置 PHP.ini 中的 extension=php_mssql.dll 并在网上下载了正确的 ntwdblib.dll 版本,在本机可通过 php 中的 mssql_connect 连接到本地的 SQL Server ,但是却不可以访问另一台 SQL Server 。
解决方案:
查找了很多的原因也没有获得可以通过 mssql_connect 访问另一台 SQL Server ,老是报告 Unable to connect to server 。 网上有人说可以通过 ODBC 的方式访问 SQL Server ,因此尝试着修改了一下,果然有效,虽然速度差了些。解决方案如下
(1) 首先在 windows 上配置好想要连接的数据库的 ODBC 。
(2) 在 php.ini 中将 extension=php_pdo_odbc.dll 前的分号去掉,并重启 apache.
(3) 在 php 写如下的脚本就可以了:
$servername='DRIVER={SQL Server};SERVER=TJ1CUNSPAMDB01;DATABASE=DataAnalysis';
# 注意 TJ1CUNSPAMDB01 是配置的 ODBC 的名字, DataAnalysis 是数据库的名字。前面要加上 DRIVER={SQL Server} 。
$username = 'xxxx';
$password = 'xxx';
$conn = odbc_connect($servername,$username,$password);
$sql="select top 2 userid,ipaddress from emili_tmp";
$rs=odbc_exec($conn,$sql);
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"userid");
$conname=odbc_result($rs,"ipaddress");
echo "$compname<br>";
echo "$conname<br>";
}
odbc_close($conn);