Windows Server 2003,PHP连接SQL Server 2005

PHP的Http post接口,接受post请求,输出JSON字符串。

不过在搭建环境时出现了好多问题,服务器环境是WIndows Server 2003 + SQL Server 2005 +IIS。

    

PHP链接SQL Server需要微软提供的sqlsrv。具体可以参考微软官方的文档:

https://msdn.microsoft.com/en-us/library/cc296170.aspx。

sqlsrv下载地址:http://www.microsoft.com/en-us/download/confirmation.aspx?id=20098。


主要问题在于PHP5.4之后不再支持Server 2003,于是最初,把PHP降到5.3之后发现5.3使用的sqlsrv30版本的需要安装一个SQL Server ODBC Driver 11,而这个驱动无法在03系统上安装,于是PHP只能再降。


最终,PHP选择的版本是PHP5.2.13,使用的是官方的安装版本,安装后需要进行IIS等的一些配置,这里不进行详细描述了。可以百度IIS配置PHP的相关文章,主要就是配置ISAPI和程序映射。这里也不推荐使用XAMPP等集成软件来安装PHP,因为PHP5.2.13对应XAMPP版本是1.7.x,不能自由选择要安装的组件,会把Apache、MySql、Perl、FileZilla等等都安装上。

对应sqlsrv的20版本,在上面的URL中下载SQLSRV20.EXE这个文件即可,是一个自解压文件,解压后文件如下:

Windows Server 2003,PHP连接SQL Server 2005_第1张图片

里面,对应PHP5.2.x的是52版本,ts代表线程安全,nts代表线程不安全。vc6和vc9是编译的vc版本,在当前环境,我用的是php_sqlsrv_52_ts_vc6.dll这个文件,将文件复制到php目录下的ext文件,并在php.ini中添加一行extension=php_sqlsrv_52_ts_vc6.dll。

运行php测试页,打印phpinfo,看看sqlsrv是添加成功,如果成功,会显示如下信息:

Windows Server 2003,PHP连接SQL Server 2005_第2张图片

此时sqlsrv就安装成功了,如果设置没有问题仍然没看到此信息,则重启iis即可。

sqlsrv的使用方法和mysql函数差不多,可以参考SQLSRV20.EXE解压出来的SQLSRV_Help.chm文件,里面有详细的使用说明。

使用如下代码测试能否连接SQL Server数据库(如果中文有乱码,则加上"CharacterSet"=>"UTF-8"这句)。

	$serverName = "服务器地址";
	$connectionInfo = array("Database"=>"数据库名","UID"=>"用户名","PWD"=>"密码","CharacterSet"=>"UTF-8");
	$conn = sqlsrv_connect($serverName, $connectionInfo);
	if($conn){
		echo '连接成功';
	}else{
		echo '连接失败';
		die(print_r(sqlsrv_errors(),true));
	}
有可能会提示错误,说需要安装一个 Microsoft SQL Server 2008 R2 Native Client,看官方帮助文档https://msdn.microsoft.com/en-us/library/cc296170.aspx中这段描述:

Windows Server 2003,PHP连接SQL Server 2005_第3张图片


因为用的是2.0版本的驱动,在下面Download the xxx package下载安装文件安装即可,注意64位系统和32位。

安装完成后,数据库即可访问。

先写到这,有什么遗漏再补充。

你可能感兴趣的:(Windows Server 2003,PHP连接SQL Server 2005)