(本机系统是64位Win7,连接数据库是SQL Server 2008 R2)
我下的PHP的版本为 php-5.3-win32-vc9-x86
PHP连接不上2008要用到微软为PHP提供的最新第三方扩展SQL Server Driver for PHP才行。
http://www.microsoft.com/en-us/download/details.aspx?id=20098
可以微软官方这下载 :下载
下载驱动程序,下载后安装释放程序,里面有以下文件:
php_pdo_sqlsrv_52_nts.dll
php_pdo_sqlsrv_52_ts.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_52_nts.dll
php_sqlsrv_52_ts.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll
SQLServerDriverForPHP.chm(手册,英文够好的话,可以看看,嘿嘿)
SQLServerDriverForPHP_License.rtf
SQLServerDriverForPHP_Readme.htm(自述文件)
关于VC6和VC9的区别
VC6 版本是使用 Visual Studio 6 编译器编译的,如果你是在windows下使用Apache+PHP的,请选择VC6版本。
VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你是在windows下使用IIS+PHP的,请选择VC9版本。
以上虽然是这样说的但是我还是用的是Apache。之前用vc6的不行,换成vc9的后 好了。
开始配置 由于我的版本是VC9 所以选择这两个dll
选择php_sqlsrv_53_ts_vc9.dll和php_pdo_sqlsrv_53_ts_vc9.dll。把文件拷贝到PHP文件夹下的ext目录下,然后在配置文件php.ini
的最后加上如下配置
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts_vc9.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts_vc9.dll
再重启Apache服务。
phpinfo(); 看下配置的信息 如果有以下的信息 说明配置生效了
$uid,"PWD"=>$pwd,"Database"=>"SalarySend");
$conn = sqlsrv_connect( $serverName,$connectionInfo);
if( $conn == false)
{
echo "连接失败!";
die( print_r( sqlsrv_errors(), true));
}
else
echo 'success';
?>
连接成功!
公司折腾了大半个下午,回家了继续折腾!总结原因 是因为配置的dll 没有配置正确 网上查的版本大多数是这些配置:
extension=php_pdo_sqlsrv_53_ts_vc6.dll
extension=php_sqlsrv_52_ts_vc6.dll
[PHP_PDO_SQLSRV]
最后成功的配置是:
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_53_ts_vc9.dll
[PHP_SQLSRV]
extension=php_sqlsrv_53_ts_vc9.dll
配置后要重启Apache服务。