PHP 5.6.11 访问SQL Server2008R2的几种情况详解


Posted in PHP onAugust 08, 2016

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能看到相关的支持模块内容:

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

PS.IIS 7.0下安装PHP现在方便了,可以通过一个第三方小工具 PHP Manager来安装,也可以方便的切换iis下的php版本,这不是本文的主要内容,这里就不介绍了;

php manager for iis 7 下载安装地址: http://phpmanager.codeplex.com/

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

写一个测试的小例程:

<?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下运行结果如下:成功!

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

【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

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

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了;

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

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!";
?>

如果出现如下提示:

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

可能你还需要安装 Microsoft® ODBC Driver 11 for SQL Server® - Windows

下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=36434

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

如果正确的话,应该就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的几种情况详解

PHP 5.6.11 访问SQL Server2008R2的几种情况详解

以上所述是小编给大家介绍的PHP 5.6.11 访问SQL Server2008R2的几种情况详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
mysql下创建字段并设置主键的php代码
May 16 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
PHP命名空间用法实例分析
Sep 04 PHP
PHP 5.6.11中CURL模块问题的解决方法
Aug 08 #PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 #PHP
微信公众号开发之文本消息自动回复php代码
Aug 08 #PHP
微信公众号开发之语音消息识别php代码
Aug 08 #PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 #PHP
微信自定义菜单的创建/查询/取消php示例代码
Aug 05 #PHP
Thinkphp微信公众号支付接口
Aug 04 #PHP
You might like
咖啡的植物学知识
2021/03/03 咖啡文化
一个数据采集类
2007/02/14 PHP
php smarty模版引擎中的缓存应用
2009/12/11 PHP
PHP的变量总结 新手推荐
2011/04/18 PHP
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
Node.js对MongoDB进行增删改查操作的实例代码
2019/04/18 Javascript
细述Javascript的加法运算符的具体使用
2019/10/18 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
linux下python抓屏实现方法
2015/05/22 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
用django设置session过期时间的方法解析
2019/08/05 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
捐款倡议书范文
2014/02/02 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
校运会入场式解说词
2014/02/10 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书