PHP中通过ODBC连接SQL Server数据库

时间:2021-12-04 19:51:30


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);