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 相关文章推荐
初探PHP5
Oct 09 PHP
PHP中Session的概念
Oct 09 PHP
超级简单的php+mysql留言本源码
Nov 11 PHP
PHP 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
第七章 php自定义函数实现代码
Dec 30 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
PHP进程通信基础之信号
Feb 19 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 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
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
javascript event 事件解析
2011/01/31 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
js实现倒计时器自定义时间和暂停
2019/02/25 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
python实现简单爬虫功能的示例
2016/10/24 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
名人演讲稿范文
2013/12/28 职场文书
销售冠军获奖感言
2014/02/03 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
2014年教师节寄语
2014/04/03 职场文书
服务口号大全
2014/06/11 职场文书
五一口号
2014/06/19 职场文书
大专学生求职信
2014/07/04 职场文书
旷课检讨书
2015/01/26 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python