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 下载安装地址: /
写一个测试的小例程
<?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
下载链接地址有四个文件
•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 sueed.<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
下载地址
如果正确的话,应该就OK了
PS.由于新的模块是通过PDO方式访问SQL Server 2008R2,如果是本机访问,那么直接通过ip地址和sa账号就能访问了,
如果php和sql2008r2在不同电脑上,还得设置TCP 端口1433来访问,见狼蚁网站SEO优化第二张图,把动态端口改为0,把端口设置为14333如果你的SQL2000已经占用了1433,访问地址后面加个,xxxx端口号
sqlsrv:Server=192.168.1.xxx\sql2008r2,14333;Database=master
以上所述是长沙网络推广给大家介绍的PHP 5.6.11 访问SQL Server2008R2的几种情况详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程