PHP 5.6.11 访问SQL Server2008R2的几种情况详解
PHP天生支持MySQL,但是有时候也想让它访问SQL Server,该怎么办呢?
最近找了点资料,测试成功了PHP访问SQLSvr的几种情况,限于时间,还没有测试更多不同环境,把测试过的记录如下:
测试环境:win7 x64 sp1,IIS 7.5, Apache 2.4 32位版本,PHP 5.2.6 win32, PHP 5.6.11 win32 ts(线程安全版)
注:由于“Microsoft Drivers for PHP for SQL Server”驱动程序目前只有32位版,所以如果是使用sql server数据库的朋友,不建议使用php 64位,否则会导致无法连接 sql server 数据库的问题!
php 5.2.6在iis上成功访问了sql2000
php 5.2.6在iis上成功访问了sql2008r2
php 5.6.11在apache上成功访问了sql2008r2
【5.2.6 -> SQL2000】
为什么要用5.2.6这么旧的php版本做测试呢,因为php 5.2版本,内置了php_mssql.dll 模块,
打开了php.ini中的extension=php_mssql.dll 配置选项,默认好像就支持mssql2000了,
打开phpinfo能看到相关的支持模块内容:
PS.IIS 7.0下安装PHP现在方便了,可以通过一个第三方小工具 PHP Manager来安装,也可以方便的切换iis下的php版本,这不是本文的主要内容,这里就不介绍了;
php manager for iis 7 下载安装地址: http://phpmanager.codeplex.com/
写一个测试的小例程:
<?php $server ="127.0.0.1\sql2000"; //服务器IP地址,如果是本地,可以写成localhost $uid ="sa"; //用户名 $pwd ="yoooko"; //密码 $database ="master"; //数据库名称 //进行数据库连接 $conn =mssql_connect($server,$uid,$pwd) or die ("connect failed"); mssql_select_db($database,$conn); //执行查询语句 $query ="select * from cs"; $row =mssql_query($query); //打印输出查询结果 while($list=mssql_fetch_array($row)) { print_r($list); echo "<br>"; } ?>
在IIS 7.5下运行结果如下:成功!
【5.6.11 -> SQL2008R2】
5.6以上的PHP已经没有php_mssql.dll,貌似也不再原生支持sql2000以上版本的sql server了,要通过第三方模块,在微软官网找到了:
Microsoft Drivers for PHP for SQL Server
http://www.microsoft.com/en-us/download/details.aspx?id=20098
下载链接地址有四个文件:
•SQLSRV30.EXE
•SQLSRV31.EXE
•SQLSRV32.EXE
•SQLSRV40.EXE
分别支持不同的PHp版本
•Version 4.0 supports PHP 7.0+
•Version 3.2 supports PHP 5.6, 5.5, and 5.4
•Version 3.1 supports PHP 5.5 and 5.4
•Version 3.0 supports PHP 5.4.
如果是PHP 5.2要下载一个SQLSRV20.EXE,这个文件目前在网上也能很容易的找到;
(虽然5.2这么旧的版本早就该被淘汰了,但是考虑到某些环境还需要用它)
php_pdo_sqlsrv_52_ts_vc6.dll
php_sqlsrv_52_ts_vc6.dll
1. 我手里是PHP 5.6.11 win32 ts,要用到这个
php_sqlsrv_56_ts.dll
php_pdo_sqlsrv_56_ts.dll
这两个文件,复制到php\ext目录下,
2. php.ini 里加上以下两句:
extension=C:\PHP5\ext\php_sqlsrv_56_ts.dll
extension=C:\PHP5\ext\php_pdo_sqlsrv_56_ts.dll
3. 重启IIS或者Apache,
4. 通过phpinfo能够看到如下模块显示,我们的PHP应该此时就能访问SQL Server 2008R2了;
5、写一个小程序验证一下:
<?php try { $dbName = "sqlsrv:Server=127.0.0.1\sql2008r2;Database=master"; $dbUser = "sa"; $dbPassword = "yoooko"; $db = new PDO($dbName, $dbUser, $dbPassword); if ($db) { echo "database connect succeed.<br />"; } } catch (PDOException $e) { $content = iconv("UTF-8","gbk",$e->getMessage()); echo $content . "<br />"; } //echo "Hello PDO to MS SqlSrv!"; ?>
如果出现如下提示:
可能你还需要安装 Microsoft® ODBC Driver 11 for SQL Server® - Windows
下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=36434
如果正确的话,应该就OK了:
PS.由于新的模块是通过PDO方式访问SQL Server 2008R2,如果是本机访问,那么直接通过ip地址和sa账号就能访问了,
如果php和sql2008r2在不同电脑上,还得设置TCP 端口1433来访问,见下面第二张图,把动态端口改为0,把端口设置为14333如果你的SQL2000已经占用了1433,访问地址后面加个,xxxx端口号
sqlsrv:Server=192.168.1.xxx\sql2008r2,14333;Database=master
以上所述是小编给大家介绍的PHP 5.6.11 访问SQL Server2008R2的几种情况详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
Win2008 R2安装.NET Framework 4的windows6.1-KB958488-V6001-x64出现灾难性故障解决方法
这篇文章主要介绍了Win2008 R2安装.NET Framework 4的windows6.1-KB958488-V6001-x64出现灾难性故障解决方法,需要的朋友可以参考下...2016-01-27WINDOWS 2008 r2 远程桌面账户登录限制(一个帐户两个人使用)
在WINDOWS 2008 R2中,一个帐户是只能默认开启一个远程登录会话,有时候我们需要两个人同时登录服务器就会被挤掉,那么参考下面的方法设置一下即可,需要的朋友可以参考下...2017-07-06Windows Server 2012 R2 预览版安装全程图解
这篇文章主要介绍了Windows Server 2012 R2 预览版安装全程图解,需要的朋友可以参考下...2016-01-27Win2008 R2 WEB 服务器安全设置指南之修改3389端口与更新补丁
这篇文章主要介绍了Win2008 R2 WEB 服务器安全设置指南之修改3389端口与更新补丁,需要的朋友可以参考下...2016-07-04Windows Server 2008 R2忘记管理员密码后的解决方法
在早期的系统中,遇到这种事情可以使用目前国内的很多Windows PE光盘来解决。但是,对于Windows Server 2008 R2来讲,只靠简单的这些操作是暂时无法解决密码问题的...2016-01-27- 这篇文章主要介绍了Windows Server 2008 R2下Server Core的一些常用命令,需要的朋友可以参考下...2016-01-27
- 修改登录界面其他功能的链接,使之成为CMD的链接,在CMD命令里面 定位到C:\\Windows\System32下,用net user 去修改账号和密码 ...2016-01-27
Windows 2012 r2系统上安装IIS 8.0的方法(图文)
这篇文章主要介绍了Windows 2012 r2系统上安装IIS 8.0的方法(图文),需要的朋友可以参考下...2016-01-27Windws Server 2008 R2 WEB环境配置之安装IIS方法
这篇文章主要介绍了 Windws Server 2008 R2 WEB环境配置之安装IIS方法,需要的朋友可以参考下...2016-07-04WIN2008 R2 Active Directory 之二 部署企业中Windows Server 2008 R2额外域控制器
通过部署企业中第一台Windows Server 2008 R2域控制器已经完成了企业中Windows网络域森林的建立。但是,在企业中对于AD来讲,为了保证安全稳定运行,至少需要两台以上的物理域控制器...2016-01-27Windows Server 2008 R2 建立iSCSI存储的教程(图文)
学习虚拟化过程中接触到了一些iscsi存储,后来在网上查阅了一些文档,在虚拟机环境下进行了测试,效果不错,写出来和大家一起分享,需要的朋友可以参考下...2017-07-06win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等)
这篇文章主要介绍了win2008 r2 服务器php+mysql+sqlserver2008运行环境配置(从安装、优化、安全等),需要的朋友可以参考下...2016-07-04windows 2008 R2 64位服务器中开启php curl扩展的方法
这篇文章主要介绍了windows 2008 R2 64位服务器中开启php curl扩展的方法,需要的朋友可以参考下...2016-01-27Windows 2008 R2 下IIS7.5+PHP5.2环境配置(FastCgi设置)
这篇文章主要介绍了Windows 2008 R2 下IIS7.5+PHP5.2环境配置(FastCgi设置),需要的朋友可以参考下...2016-07-04- 这篇文章主要是介绍win2008 r2下php运行环境的几种配置区别介绍,大家可以根据自己的需求选择...2016-01-27
Windows 2008 R2 单网卡搭建vpn实战设置方法
本人通过公司的一个小型服务器为自己搭建了一个vpn,暂时先使用着,过程不复杂现在和大家分享一下,因为服务器网段没有限制所以出此下策,需要的朋友可以参考下...2017-01-22win2008 R2 WEB 服务器安全设置指南之组策略与用户设置
这篇文章主要介绍了win2008 R2 WEB 服务器安全设置指南之组策略与用户设置,需要的朋友可以参考下...2016-07-04Windows Server 2008 R2 DNS 服务器迁移方法
近来为客户部署VSphere的虚拟化数据中心,所有部署、迁移操作实施完成后,客户又提出一个新的小要求:原生产环境中有一台DNS服务器,上面部署有一些应用,但年久失修处于淘汰状态,但是其上面有个DNS服务,还是要使用的,希望只将DNS服务迁移到虚拟化平台上...2016-01-27在Windows Server 2008 R2服务器下架设VPN服务器的方法
这篇文章主要介绍了在Windows Server 2008 R2服务器下架设VPN服务器的方法,需要的朋友可以参考下...2016-11-01Win2008 R2中IIS7.5配置完网站权限不足问题的解决方法
这篇文章主要介绍了Win2008 R2中IIS7.5配置完网站权限不足问题的解决方法,需要的朋友可以参考下...2016-01-27