Thinkphp5框架实现获取数据库数据到视图的方法


Posted in PHP onAugust 14, 2019

本文实例讲述了Thinkphp5框架实现获取数据库数据到视图的方法。分享给大家供大家参考,具体如下:

这是学习thinkhp5的基础篇笔记。

这里主要讲怎么配置数据库链接,以及查询数据库数据,并且最后将数据赋给视图。

数据库配置:

thinkphp5的数据库配置默认在conf下的database.php下面。我的数据库配置项目如下

<?php
 return [
    // 数据库类型
    'type'      => 'mysql',
    // 数据库连接DSN配置
    'dsn'       => '',
    // 服务器地址
    'hostname'    => '127.0.0.1',
    // 数据库名
    'database'    => 'course',
    // 数据库用户名
    'username'    => 'root',
    // 数据库密码
    'password'    => '',
    // 数据库连接端口
    'hostport'    => '3306',
    // 数据库连接参数
    'params'     => [],
    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'     => 'imooc_',
    // 数据库调试模式
    'debug'      => false,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'     => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'   => false,
    // 读写分离后 主服务器数量
    'master_num'   => 1,
    // 指定从服务器序号
    'slave_no'    => '',
    // 是否严格检查字段是否存在
    'fields_strict'  => true,
    // 数据集返回类型
    'resultset_type' => 'array',
    // 自动写入时间戳字段
    'auto_timestamp' => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'   => false,
    // Builder类
    'builder'     => '',
    // Query类
    'query'      => '\\think\\db\\Query',
];

主要配置的项目是数据库服务器地址hostname,数据库名database,数据库用户名username和数据库密码password,还有一个表前缀prefix。配置之后就可以使用tp5的查询语句查询数据库了。

查询数据库数据阶段,使用了tp5的模型类,这样就可以直接利用tp5自带的数据库查询方法,下面是model代码

<?php
namespace app\index\model;
use think\Model;
class Course extends Model{
}

然后将model代码引入到控制器的方法内,使用即可,使用代码如下,使用之前要引入哦

<?php
namespace app\index\controller;
use think\Controller;
use app\index\model\Course;
//use think\Loader;
class Index extends Controller
{
  public function index()
  {
     $res=Course::get(2)->toArray();
     /*return view("index",[
       "email"=>"123456@163.com"
     ]);*/
     return view("index",$res);
}

这样就可以了,哈哈;很多没有交代清楚的地方好像。tp5操作数据库可以有2种方法,具体又分3种方法,两种是使用Db类和继承数据库模型;三种是Db下可以使用tp的查询也可以使用原生的查询。

需要注意的是,find和select是查询构造器的方法,get和all是模型的方法。但模型又是基于查询构造器的,所以模型可以调用find和select方法,但是查询构造器不能调用get和all方法。

如果利用Db类的话,上面实现的方式变为

<?php
namespace app\index\controller;
use think\Db;
use think\Controller;
//use think\Loader;
class Index extends Controller
{
  public function index()
  {
     $res=Db::table("imooc_course")
     ->find(2);
     /*return view("index",[
       "email"=>"123456@163.com"
     ]);*/
     return view("index",$res);
}

注意的是find方法返回的直接是数组形式了,而不需要再进行数组转化。

关于tp5操控数据库有很多方法,这里只是记录下查询数据库的基本操作实现。

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

PHP 相关文章推荐
php discuz 主题表和回帖表的设计
Mar 13 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
Jul 20 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
Zend Framework入门应用实例详解
Dec 11 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 PHP
php中对象引用和复制实例分析
Aug 14 #PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 #PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 #PHP
PHP命名空间定义与用法实例分析
Aug 14 #PHP
php中的依赖注入实例详解
Aug 14 #PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 #PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 #PHP
You might like
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
javascript 基础篇2 数据类型,语句,函数
2012/03/14 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
[36:33]完美世界DOTA2联赛循环赛 Matador vs Forest 第一场 11.06
2020/11/06 DOTA
12步教你理解Python装饰器
2016/02/25 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Python----数据预处理代码实例
2019/03/20 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
夜大毕业生自我鉴定
2013/10/31 职场文书
资料员岗位职责
2013/11/17 职场文书
慈善晚会策划方案
2014/05/14 职场文书
消防安全宣传口号
2014/06/10 职场文书
四年级小学生评语
2014/12/26 职场文书
行政司机岗位职责
2015/04/10 职场文书