最近项目用到php连接sql server2005,网上资料不少已经过时。本文档整理了php连接sql server数据库的服务器配置方法,实际测试用的是wamp服务器,web服务器是apache,php版本是php5.2、php5.3,成功连接到sql server 2005,sql server 2008,server 2012。
php连接sql server过程中用到微软的SQL Server Driver for PHP程序,本程序支持apahce,IIS。我这个实测用的是apache服务器,如果你的应用服务器是IIS的,只要选择相应的IIS驱动程序就可以,配置方法类似,具体的可查看SQL Server Driver for PHP文件夹内的SQLSRV_Help.chm文件。
从sql server2005开始,已经不能通过配置php.ini里面的php_mssql.dll扩展实现连接sqlserver。php_mssql.dll最高支持到sql server2000版本数据库连接。
Sql server 2005及以上版本的php连接要用到SQL Server Driver for PHP。这个扩展软件由微软提供。本文介绍两个SQL Server Driver for PHP的版本:
SQL Server Driver for PHP 2.0版本:
支持数据库版本:sql server 2005 ,sql server 2008
支持php版本: php 5.2 ,php 5.3
支持服务器软件: IIS ,apache
SQL Server Driver for PHP 3.0版本:
支持数据库版本:sql server 2005 ,sql server 2008,sql server 2012
支持php版本: php 5.3 ,php 5.4
支持服务器软件: IIS ,apache
PHP连接sqlserver数据库的测试,配置实测总结如下:
测试服务器用wamp,个人感觉这是windows下比较好的php服务器之一。用wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b测试,使用SQL Server Driver for PHP 3.0版本,可以通过php正常连接到sqlserver 2012;但是连接sql server2005,sql server 2008有问题;
测试服务器用wamp。用WampServer2.0g-1测试,使用SQL Server Driver for PHP 2.0版本,可以通过php5.2正常连接到sql server 2005与sql server 2008。对于使用sql server 2005的,推荐使用这版本配置。
提供部分相关文件下载:
SQL-Server-Driver-for-PHP-2-0
SQL-Server-Driver-for-PHP-3-0
sqlncli
wamp2.0(此文件比较大建议最好到其他软件站查询下载)
已实测过的wamp2.0,php5.2环境下的php连接sql server2008详细配置:
1.直接安装wamp.exe就可以了。
2.把SQL Server Driver for PHP 2.0解压到wamp的安装目录下的\bin\php\php5.2.9-1\ext目录。
3.如果是sql server 2005的话,直接下一步就可以;如果是sql server 2008还要安装一个微软的工具包sqlncli.msi,直接点击安装。
4.修改php.ini配置文件,在文件中增加下面的内容
extension=php_sqlsrv_52_ts_vc6.dll
extension=php_pdo_sqlsrv_52_ts_vc6.dll
extension=php_pdo.dll
5.重启动wamp服务器,查看phpinfo信息。如果wamp是默认安装的话,那么输入http://localhost/?phpinfo=1就可以看到下图:
可以找到pdo_sqlsrv内容就可以了。
6.然后写一个php连接sqlserver数据库的测试代码,如下图:
<?php
header(“content-type:text/html; charset=utf-8”);
$serverName = “(local)”;
$uid = “用户名”;
$pwd = “密码”;
$connectionInfo = array(“UID”=>$uid,”PWD”=>$pwd,”Database”=>”test”);
$conn = sqlsrv_connect( $serverName,$connectionInfo);
if( $conn == false)
{
echo “连接失败!”;
die( print_r( sqlsrv_errors(), true));
}
$query = sqlsrv_query($conn, “select top 8 id,title,content from test.dbo.test”);
while($row = sqlsrv_fetch_array($query)){
echo $row[‘id’].”######”.iconv(‘GB2312′,’UTF-8’,$row[‘title’]).”######”.iconv(‘GB2312′,’UTF-8’,$row[‘content’]).”<br/>”;
}
?>
7.用浏览器去访问这个php文件正常的话就可以看到结果。
8.具体的php连接sqlserver数据库的文档,可以看SQL Server Driver for PHP文件夹的SQLSRV_Help.chm,有详细说明。

php还可以连接微软数据库,非常好,试试去。
连是能连得上,不过速度慢,效率太低
可以查看一下微软相关API的文档,做一下参数调优。另外php连接sqlserver本身是一个过程状态,多数会在.net到php语言转换的过程。主要业务还是用php加mysql为好。