最近用PHP,但是要连接的数据库是MS的SQL Server(头一次用PHP就得搞这么蛋疼的东西),后来就各种找,很蛋疼的说。前后进行了大概三次环境配置,发现一个关键点(也可能是我用的环境是AppServ的集成环境,所以可能特殊,没有求证),那总结一下用AppServ集成环境配置连接MS SQL Server。
版本为 2000.2.8.0 对应 SqlServer2000
2000.80.194.0 对应 SqlServer2005
版本为 2000.80.2039 对应 SqlServer2008(本人测试通过)
地址: http://www.webzila.com/dll/1/ntwdblib.zip
覆盖 apache2.2.6\bin\ntwdblib.dll (容易被忽略)
覆盖 php5.2.6\ntwdblib.dll
二、PHP自带的MSSQL扩展php_mssql.dll原来是给SQL Server 2000用的,难怪连接不上2008?! -_-!!要使用SQL Server 2005以上版本,就要用到微软为PHP提供的最新第三方扩展SQL Server Driver for PHP才行,最新版本是2.0的,下载地址:
SQL Server Driver for PHP 1.1 (2009-10)
SQL Server Driver for PHP 2.0 CTP1(2010-04)
或者:http://www.microsoft.com/sqlserver/2005/en/us/PHP-Driver.aspx
想看中文详细使用资料可参考MSDN的,地址:
http://msdn.microsoft.com/zh-cn/library/cc296170(SQL.90).aspx
有关Driver说明查看微软官方说明即可,选择正确版本。
三、开始配置,我用的是Appserv 搭建的PHP环境(Apache 2.2+PHP 5.2.6+MySQL 5),想用线程安全的,所以选择php_sqlsrv_52_ts.dll和php_pdo_sqlsrv_52_ts.dll。
开始工作,先把文件拷贝到PHP文件夹下的ext目录下,然后在配置文件php.ini的Extensions后面加上:
;extension=php_sqlsrv_52_ts.dll
;extension=php_pdo_sqlsrv_52_ts.dll
配置php.ini:
1、打开php.in将extension=php_mssql.dll的注释符号去掉。
2、打开php.in将mssql.secure_connection = Off改为on。
3、将php_mssql.dll拷贝到php.in中extension_dir 指定的目录或者系统system32目录下。(php_mssql.dll在php压缩安装包中有)。
以上步骤完成后需要重启apache。
注意:实际使用中发现 如果通过php压缩文件手工安装php到iis下,必须重启机器而不仅仅是iis。
4、需要保证php或者系统系统system32下有ntwdblib.dll,查看属性确保其版本为8.00.194而不是7.0......
SQL Server 默认配置即可。
自己没有研究过,都是Google而来,其中需要强调的就是覆盖 apache2.2.6\bin\ntwdblib.dll ,如果没有直接复制进去,我最后一次配置就是因为这一步才成功。