加入收藏 | 设为首页 | 会员中心 | 我要投稿 92站长网 (https://www.92zz.com.cn/)- 语音技术、视频终端、数据开发、人脸识别、智能机器人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

thinkphp5 db类怎么应用

发布时间:2023-08-11 10:31:28 所属栏目:PHP教程 来源:未知
导读:   本篇内容介绍了“thinkphp5 db类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔
  本篇内容介绍了“thinkphp5 db类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
 
  一、连接数据库
 
  连接数据库有两种方式,一种是在config.php中配置,另一种是在实例化Db类时传入连接参数。
 
  在config.php中配置:
 
  return [
 
      // 数据库类型
 
      'type'      => 'mysql',
 
      // 服务器地址
 
      'hostname'  => '127.0.0.1',
 
      // 数据库名
 
      'database'  => 'test',
 
      // 数据库用户名
 
      'username'  => 'root',
 
      // 数据库密码
 
      'password'  => '',
 
      // 数据库连接端口
 
      'hostport'  => '',
 
  ];
 
  实例化Db类时传入连接参数:
 
  use think\Db;
 
  $config = [
 
      // 数据库类型
 
      'type'      => 'mysql',
 
      // 服务器地址
 
      'hostname'  => '127.0.0.1',
 
      // 数据库名
 
      'database'  => 'test',
 
      // 数据库用户名
 
      'username'  => 'root',
 
      // 数据库密码
 
      'password'  => '',
 
      // 数据库连接端口
 
      'hostport'  => '',
 
  ];
 
  Db::connect($config);
 
  二、基本操作
 
  1.查询操作
 
  use think\Db;
 
  //查询一条数据
 
  Db::table('user')->where('id', 1)->find();
 
  //查询多条数据
 
  Db::table('user')->where('age', '>', 18)->select();
 
  2.插入操作
 
  use think\Db;
 
  $data = [
 
      'username' => 'admin',
 
      'password' => md5('admin'),
 
      'sex'      => 1,
 
      'age'      => 20,
 
  ];
 
  Db::table('user')->insert($data);
 
  3.更新操作
 
  use think\Db;
 
  Db::table('user')->where('id', 1)->update(['age' => 21]);
 
  4.删除操作
 
  use think\Db;
 
  Db::table('user')->where('id', 1)->delete();
 
  三、高级操作
 
  1.链式操作
 
  链式操作可以简化sql语句的书写。
 
  use think\Db;
 
  Db::table('user')
 
      ->alias('u')
 
      ->join('role r', 'u.role_id=r.id')
 
      ->where('u.id', 1)
 
      ->field('u.username, r.name')
 
      ->find();
 
  2.调试方法
 
  在开发环境中,我们经常需要查看sql语句的执行情况,Db类提供了三个调试方法:getLastSql、getExplain和getSqlLog。
 
  use think\Db;
 
  Db::table('user')->getLastSql();
 
  Db::table('user')->where('age', '>', 18)->getExplain();
 
  Db::table('user')->where('age', '>', 18)->select();
 
  Db::table('user')->getLastSql();
 
  print_r(Db::getSqlLog());
 
  getLastSql方法可以获取最后一次执行的sql语句。
 
  getExplain方法可以获取sql语句的执行计划。
 
  getSqlLog方法可以获取所有执行的sql语句和执行时间。
 

(编辑:92站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章