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 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
实现PHP多线程异步请求的3种方法
Jan 17 PHP
更改localhost为其他名字的方法
Feb 10 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
PHP连接操作access数据库实例
Mar 30 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
Yii2选项卡的简单使用
May 26 PHP
PHP类的自动加载机制实现方法分析
Jan 10 PHP
PHP大文件切割上传功能实例分析
Jul 01 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
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
PHP array操作10个小技巧分享
2011/06/23 PHP
Yii操作数据库的3种方法
2014/03/11 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
js实现带有介绍的Select列表菜单实例
2015/08/18 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
2016/03/18 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
Vue.js实战之使用Vuex + axios发送请求详解
2017/04/04 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python3处理文件中每个词的方法
2015/05/22 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python的Django框架安装全攻略
2015/07/15 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
python之Character string(实例讲解)
2017/09/25 Python
python collections模块的使用
2020/10/16 Python
如何在pycharm中安装第三方包
2020/10/27 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
2020/12/17 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
促销活动总结报告
2014/04/26 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
安全生产工作汇报
2014/10/28 职场文书
新兵入伍决心书
2015/09/22 职场文书
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android