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 相关文章推荐
火车头采集器3.0采集图文教程
Mar 17 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php表单提交问题的解决方法
Apr 12 PHP
php开发过程中关于继承的使用方法分享
Jun 17 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
laravel 5.5 关闭token的3种实现方式
Oct 24 PHP
laravel通用化的CURD的实现
Dec 13 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
php中看实例学正则表达式
2006/12/25 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
PHP数组交集的优化代码分析
2011/03/06 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
php session_decode函数用法讲解
2019/05/26 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
详解JavaScript树结构
2017/01/09 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
JavaScript使用小插件实现倒计时的方法讲解
2019/03/11 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
Vue 中 template 有且只能一个 root的原因解析(源码分析)
2020/04/11 Javascript
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
Python实现学生成绩管理系统
2020/04/05 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
领导班子四风对照检查材料范文
2014/09/27 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Python批量将csv文件转化成xml文件的实例
2021/05/10 Python