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日历[测试通过]
Mar 27 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 PHP
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
Nov 07 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
PHP中预定义的6种接口介绍
May 12 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
PHP页面跳转实现延时跳转的方法
Dec 10 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
php的扩展写法总结
May 14 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 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
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
2013/06/05 PHP
php版微信公众平台实现预约提交后发送email的方法
2016/09/26 PHP
php动态读取数据清除最右边距的方法
2017/04/12 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
python中PIL安装简单教程
2016/04/21 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
Python八皇后问题解答过程详解
2019/07/29 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
Java编程面试题
2016/04/04 面试题
爱我中华演讲稿
2014/05/20 职场文书
酒店节能减排方案
2014/05/26 职场文书
涉密人员保密承诺书
2014/05/28 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
我对PyTorch dataloader里的shuffle=True的理解
2021/05/20 Python
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android
详解Nginx 被动检查服务器的存活状态
2021/10/16 Servers