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 相关文章推荐
用Socket发送电子邮件(利用需要验证的SMTP服务器)
Oct 09 PHP
基于mysql的bbs设计(四)
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
深入file_get_contents与curl函数的详解
Jun 25 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
php简单生成随机数的方法
Jul 30 PHP
标准版Eclipse搭建PHP环境的详细步骤
Nov 18 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
php error_log 函数的使用
2009/04/13 PHP
php disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
IIS下PHP的三种配置方式对比
2014/11/20 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
Some tips of wmi scripting in jscript (1)
2007/04/03 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
选择TreeView控件的树状数据节点的JS方法(jquery)
2010/02/06 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
Knockoutjs的环境搭建教程
2012/11/26 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
JavaScript判断是否是微信浏览器
2016/06/13 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
在Django的上下文中设置变量的方法
2015/07/20 Python
Python实现读取并保存文件的类
2017/05/11 Python
Python yield 使用方法浅析
2017/05/20 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
2019/07/25 Python
python实现IOU计算案例
2020/04/12 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
施工材料员岗位职责
2014/02/12 职场文书
新教师教学工作总结
2015/08/14 职场文书
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技