现象:
一台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的方式访问SQLServer,因此尝试着修改了一下,果然有效,虽然速度差了些。解决方案如下
(1) 首先在windows上配置好想要连接的数据库的ODBC。
(2) 在php.ini中将extension=php_pdo_odbc.dll前的分号去掉,并重启apache.
(3) 在php写如下的脚本就可以了:
$servername='DRIVER={SQLServer};SERVER=TJ1CUNSPAMDB01;DATABASE=DataAnalysis';
#注意TJ1CUNSPAMDB01是配置的ODBC的名字,DataAnalysis是数据库的名字。前面要加上DRIVER={SQL Server}。
$username ='xxxx';
$password ='xxx';
$conn =odbc_connect($servername,$username,$password);
$sql="selecttop 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
";
echo "$conname
";
}
odbc_close($conn);