Windows下使用PHP连接SQL Server数据库

原创 zhaoliang  2017-03-29 16:01  阅读 890 views 次

虽然PHP+MySQL是佳配,个别情况下难免也会使用MySQL之外的一些数据库,但使用PHP+SQL Server的场景却是极少,我想这跟微软之前的产品不开源有一定的关系吧。开源是未来软件发展的大方向,最近几年里微软对开源似乎产生了越来越大的兴趣,并且开源了部分软件……

SQL Server只对最新的PHP7提供了64位的驱动组件程序,对PHP5只有32位的,大家安装过程中要注意,PHP5系统只能用32位的php程序包,除了SQL Server的PHP驱动程序,大家可能还需要安装SQL Server的ODBC驱动程序。下面把PHP连接SQL Server的对接过程分享给大家:

安装好SQL Server 2012数据库,SQL Server有两类账户:Windows 身份验证和SQL Server 身份验证,要确保数据库有“SQL Server身份验证”类型的账户供PHP驱动程序使用。

打开“SQL Server 配置管理器”,修改"SQL Server 网络配置"下“MSSQLSERVER 的协议”调用"TCP/IP"协议,并修改“IP 地址”选项卡下对应的ip地址为启用状态,大家根据自己的实际ip进行启用即可,一般使用系统安装后默认的ip即可。

确保SQL Server可被正常访问使用,建议使用第三方的数据库管理工具进行连接测试,我使用了Navicat客户端进行了测试。

下载Microsoft Drivers for PHP for SQL Server,地址为:https://www.microsoft.com/en-us/download/details.aspx?id=20098,参照图片,根据自己PHP环境的版本信息选择对应的驱动程序;此处使用了PHP5.6和PHP7.0的程序,所以下载了SQLSRV32.EXE和SQLSRV40.EXE两个驱动程序;注意现在的SQL Server驱动最新仅能只能PHP7.0.14,暂时还不能支持最新的PHP7.1.0版本。

点击安装驱动程序SQLSRV32.EXE,选择解压文件路径,解压dll文件完成后,根据自己PHP的版本环境选择对应的驱动程序文件,注意区分PHP的线程安全版本(即ts版)还是非安全版本(nts版)。

拷贝驱动文件php_pdo_sqlsrv_56_ts.dll和php_sqlsrv_56_ts.dll至PHP安装目录下的ext文件夹下面,修改配置php配置文件php.ini,添加以下两行:

extension=php_pdo_sqlsrv_56_ts.dll
extension=php_sqlsrv_56_ts.dll

下载并安装“Microsoft ODBC Driver for SQL Server”程序,下载地址:https://msdn.microsoft.com/zh-cn/library/jj730314(v=sql.1).aspx,选择对应的版本,此处我下载的是“Microsoft ODBC Driver 11 for SQL Server”对应的amd64版本;运行msodbcsql.msi文件进行安装,完成Windows版的ODBC驱动安装工作。

编写PHP代码进行数据库连接调试:

<?php
	header("Content-type: text/html; charset=utf-8"); 
	$serverName = "127.0.0.1"; //数据库服务器地址
	$uid = "你的数据库用户名"; //数据库用户名
	$pwd = "你的数据库用户密码"; //数据库密码
	$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"localtest");
	$conn = sqlsrv_connect( $serverName, $connectionInfo);
	if( $conn == false)
	{
		echo "连接失败!";
		die( print_r( sqlsrv_errors(), true));
	}else{
		echo "连接成功!";   
	}
	$query = sqlsrv_query($conn, "select top 10 * from 数据表名");
	while($row = sqlsrv_fetch_array($query))
	{
		print_r($row);
	}
?>

 

本文地址:http://blog.58cm.cn:8088/archives/271.html
版权声明:本文为原创文章,版权归 zhaoliang 所有,欢迎分享本文,转载请保留出处!

评论已关闭!