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 模拟get_headers函数的代码示例
Apr 27 PHP
php共享内存段示例分享
Jan 20 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
php实现搜索类封装示例
Mar 31 PHP
php的4种常用运行方式详解
Dec 22 PHP
PHP+MySQL实现消息队列的方法分析
May 09 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 PHP
PHP Pipeline 实现中间件的示例代码
Apr 26 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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+SQLite存储方案
2010/09/04 PHP
PHP中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
2016/10/14 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
深入理解JS中的变量及作用域、undefined与null
2014/03/04 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
vue+node+webpack环境搭建教程
2017/11/05 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
python 获取网页编码方式实现代码
2017/03/11 Python
Python数据分析之双色球中蓝红球分析统计示例
2018/02/03 Python
对python 矩阵转置transpose的实例讲解
2018/04/17 Python
深入解析神经网络从原理到实现
2019/07/26 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
程序集与命名空间有什么不同
2014/07/25 面试题
部队万能检讨书
2014/02/20 职场文书
我为自己代言广告词
2014/03/18 职场文书
租房协议书样本
2014/08/20 职场文书
民事申诉状范本
2015/05/20 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
运动会开幕式致辞
2015/07/29 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python