PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】


Posted in PHP onMay 06, 2019

本文实例讲述了PHP连接SQL Server的方法。分享给大家供大家参考,具体如下:

之前我们实现了用thinkPHP5.1框架搭配的项目,实现了thinkPHP5.1与本机sql server 2008 R2的连接,并且把数据内容显示在页面上。

本机的使用工具:1、编译工具PhpStorm

2、WampServer 集成工具(Apache 2.4.33;PHP 7.0.29)

在连接过程中,有两种方法可以连接。

第一种(用到ThinkPHP框架的,配置微软自带的驱动):

先把tp5的项目放在wamp目录下的www里面

利用微软提供的PHP与SQL Server 驱动包

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

下载:SQLSRV40.EXE(根据PHP对应的版本下载对应的驱动)

下载完成解压后选择相对应的PHP版本信息,如:本机的PHP是 7.0.29版本,线程安全,64位。

选择以下文件:

php_pdo_sqlsrv_7_ts_x64.dll

php_sqlsrv_7_ts_x64.dll

将其

放置

X:\wamp\bin\php\php7.0.29\ext

然后进入Apache修改php.in配置文件

X:\wamp\bin\apache\apache2.4.33\bin

在extension=php_gd2.dll和extension=php_gettext.dll之间添加

extension=php_gd2.dll
extension=php_sqlsrv_7_ts_x86.dll
extension=php_pdo_sqlsrv_7_ts_x86.dll
extension=php_gettext.dll

之后重启Apache服务器。

用PhpStorm打开tp5项目,在index模版下创建一个config文件再创建database.php配置数据库,可以参考app应用目录下的database.php格式,将其复制在index下config的database.php,一般修改数据库类型,数据库,用户名,密码。

接着在controller控制器下建立一个test.class.php文件,代码如下

<?php
namespace app\index\controller;
use think\Db;
use think\Controller;
class Test extends Controller
{
public function zz(){
$data= Db::query('SELECT top 100 * FROM V_XZ_SPZD_KC');
var_dump($data);
}
}

最后调用入口文件即可访问。

http://localhost:81/1111/tp5/public/index/test/zz

这种方法也可以用pdo_odbc方法连接sqlserver(配合thinkPHP框架)

第二种(不用到ThinkPHP框架):

*(上面的微软驱动数据库的方法,不用thinkPHP也是可以连接的)

用PDO_odbc来连接SQL Server 数据库:

进入Apache修改php.in配置文件

X:\wamp\bin\apache\apache2.4.33\bin
extension=php_pdo_odbc.dll前面的冒号去掉,开启这个服务,重启Apache服务器。

在www目录下创建一个test.php文件

代码如下:

<?php
header("Content-type: text/html; charset=gbk");//使页面不会乱码
$hostname='192.168.1.215';
$dbname='ZD';
$username='Reader';
$password='TestReader';
//使用PDO_ODBC方式连接
$dbDB = new PDO("odbc:Driver={SQL Server};Server=$hostname;Database=$dbname", $username, $password);
$sql = "SELECT top 100 * FROM V_DY_SPZD";
foreach ($dbDB->query($sql) as $row) {
var_dump($row);
//print_r($row);
}
exit;

最后调用入口文件即可访问。

http://localhost:81/test.php即可访问

这些方法要注意的是:需要了解thinkPHP5.1的DB类的使用语句。根据不同的项目要求可以组建不同的连接方法。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php懒人函数 自动添加数据
Jun 28 PHP
php的hash算法介绍
Feb 13 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
PHP实现仿Google分页效果的分页函数
Jul 29 PHP
php bootstrap实现简单登录
Mar 08 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP中Notice错误常见解决方法
Apr 28 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
php写app用的框架整理
Sep 29 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
php + WebUploader实现图片批量上传功能
May 06 #PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
May 06 #PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 #PHP
PHP实现八皇后算法
May 06 #PHP
Laravel中10个有用的用法小结
May 06 #PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 #PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 #PHP
You might like
php flv视频时间获取函数
2010/06/29 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
搭建基于Docker的PHP开发环境的详细教程
2015/07/01 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
动态的创建一个元素createElement及删除一个元素
2014/01/24 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
java必学必会之static关键字
2015/12/03 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
node.js中grunt和gulp的区别详解
2017/07/17 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
Python之列表实现栈的工作功能
2019/01/28 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python如何设置静态变量
2020/09/07 Python
香港No.1得奖零食网:香港零食大王
2016/07/22 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
路政管理毕业自荐书范文
2014/02/10 职场文书
不服从公司安排检讨书
2014/09/24 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis