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 相关文章推荐
WindowsXP中快速配置Apache+PHP5+Mysql
Jun 05 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
Apr 11 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
php写的简易聊天室代码
Jun 04 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
PHP中比较时间大小实例
Aug 21 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 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
PHP Array交叉表实现代码
2010/08/05 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
javascript与webservice的通信实现代码
2010/12/25 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
2013/08/01 Javascript
php与js的区别是什么
2013/08/05 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
JavaScript中数组常见操作技巧
2017/09/01 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
python中使用sys模板和logging模块获取行号和函数名的方法
2014/04/15 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
小学科学教学反思
2014/01/26 职场文书
班主任工作经验材料
2014/02/02 职场文书
机关出纳岗位职责
2014/04/03 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
高中生毕业评语
2014/12/30 职场文书
全陪导游词开场白
2015/05/29 职场文书
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server