手机版

PHP 5.6.11访问SQL Server2008R2几种情况的详细说明

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

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版本。这不是本文的主要内容,这里就不介绍了。

在http://phpmanager.codeplex.com/:下载并安装iis 7的php管理器

编写测试程序:

?PHP $ server=' 127 . 0 . 0 . 1 \ SQL 2000 ';//服务器IP地址,如果是本地的,可以写成localhost $ uid=' sa//username $ pwd=' yoooko ';//password $ database=' master ';//数据库名称//建立数据库连接$ conn=MSSQL _ connect ($ server,$ uid,$ pwd)或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。需要通过第三方模块在微软官网找到3360

微软的PHP驱动程序

http://www.microsoft.com/en-us/download/details.aspx?id=20098

下载链接地址中有四个文件:

SQLSRV30。SQLSRV31。SQLSRV32。SQLSRV40。可执行程序的扩展名

分别支持不同的PHp版本

4.0版支持PHP 7.0 3.2版支持PHP 5.6、5.5和5.4 3.1版支持PHP 5.5和5.4 3.0版支持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 . dllphp _ PDO _ sqlsrv _ 56 _ ts . dll

这两个文件被复制到php\ext目录。

2.在php.ini中添加以下两句话:

扩展名=c : \ PHP5 \ ext \ PHP _ sqlsrv _ 56 _ ts . dllextrance=c : \ PHP5 \ ext \ PHP _ PDO _ sqlsrv _ 56 _ ts . dll

3.重新启动IIS或Apache,

4.下面的模块可以通过phpinfo看到,我们的PHP此时应该可以访问SQL Server 2008R2

5.写一个小程序来验证:

?phptry { $ DBNAmE=' sqlsrv : server=127 . 0 . 0 . 1 \ SQL 2008 r 2;database=master ';$ dbUser=' sa$ dbPassword=' yoooko$db=新PDO($dbName,$dbUser,$ dbPassword);if ($db) { echo '数据库连接成功. br/';} } catch(PDOException $ e){ $ content=iconv(' UTF-8 ',' gbk ',$ e-getMessage());echo $内容。br/';}//echo‘你好,PDO致MS SqlSrv!’;如果出现以下提示:

也许你还需要为SQL Server-Windows安装微软ODBC驱动程序11

下载地址: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 \ SQL 2008 r 2,14333;数据库=主

以上是边肖介绍的PHP 5.6.11访问SQL Server2008R2的几种情况的详细说明,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:PHP 5.6.11访问SQL Server2008R2几种情况的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。