今天捣鼓了一下午,网上的资料看了N多,试了N次,都无效果,最终无意中发现,从微软下载的DLL文件指示只能适应X86的wamp,无奈重新下载安装完成,最后整理一下
1、下载微软提供的dll
地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098
我下的SQLSRV32.EXE,这个exe是一个自解压文件,下载后双击选路径解压会得到一堆dll和说明文件。
PS:差点忘了,下载这个文件的时候在详细说明里有ODBC Device需要下载安装
2、将对应自己php版本的dll文件copy到php ext目录下
ts是指线程安全(ThreadSafe),nts是指线程不安全,得根据安装的php版本来选择,如果不确定,就分别尝试一下;
我用的php5.5,就将php_sqlsrv_55_ts.dll复制到ext目录下,
例如:D:\Program Files\PHP 5.5\ext
3、修改php.ini文件
增加: extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll
修改: mssql.secure_connection = Off改为on
4、重启apache
其中可以通过phpinfo测试是否成功
5、配置MS SQL Server2005
a、打开 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议;
b、启用“Named Pipes”和“TCP/IP”,默认是已禁用的;
c、右键点击“TCP/IP”,选择“属性”,选择“IP地址”,在”ALLIP“下的“TCP动态端口”后填写1433;
d、重启SQL Server。
备注:记得开启sa登录。
6、安装Microsoft SQL Server 2012 Native Client.msi,这个我得sql2012已经安装
7、测试连接
<?php
$db_server = 'localhost';
$db_id = 'sa';
$db_pwd = 'coing';
$db_name = 'test';
$con_info = array("Database" => $db_name, "UID" => $db_id, "PWD" => $db_pwd);
global $con;
$con = sqlsrv_connect($db_server, $con_info);
//$con = mssql_connect($db_server,$db_id,$db_pwd);
if (!$con) {
print_r( sqlsrv_errors());
}else{
echo "connected!";
}
?>