tp5数据库操作 Db类
一、链接数据库
1.配置文件定义 application\database.php
注意:数据表前缀更改,在文件的prefix选项

2.类定义

二、数据库的基本使用
namespace app\demo\controller;
use think\Db;
class Ceshi{
public function sql(){
//1.使用系统Db类
$data = Db::table('ceshi')->select();
//2.使用sql语句
$data = Db::query('select * from ceshi');
dump($data);
}
}
三、数据查询
1.table方式
查所有 Db::table('ceshi')->select();
查一条 Db::table('ceshi')->find();
2.name方式
查所有 Db::name('ceshi')->select();
查一条 Db::name('ceshi')->find();
区别:name方式会在表名前自动加设置的前缀
3.助手函数
db('ceshi')->select();
db('ceshi')->find();
注意:助手函数同样会加前缀
四、条件查询
注意:条件的顺序可以随意,如6
1.范围查询
$data = db('ceshi')
->where('id','>','1')
->where('id','<','3')
->select();
dump($data);
2.多条件查询(并且 where)
$data = db('ceshi')
->where('id','>','1')
->where('pin','=','lisi')
->select();
dump($data);
3.多条件查询(或者 whereOr)
$data = db('ceshi')
->where('id','=','1')
->whereOr('id','=','3')
->select();
dump($data);
4.模糊查询
$data = db('ceshi')
->where('id','>','1')
->where('pin','like','li%')
->select();
dump($data);
5.limit截取查询
$data = db('ceshi')
->where('id','>','0')
//跳过几条取几条,一个参数为显示几条
->limit(1,2)
->select();
dump($data);
6.order排序
$data = db('ceshi')
->where('id','>','0')
//跳过几条取几条,一个参数为显示几条
->limit(1,2)
->order('id','desc')
->select();
dump($data);
7.field查询字段
$data = db('ceshi')
->where('id','>','0')
//查询的字段名
->field(['id','pin'])
// //或者,第二种写法
// ->field("id,pin")
->select();
dump($data);
8.更改字段名
$data = db('ceshi')
->where('id','>','0')
//将显示的字段名id更改为uid
->field(['id'=>'uid','pin'])
// //或者,第二种写法
// ->field("id uid,pin")
->select();
dump($data);
9.系统函数
$data = db('ceshi')
->where('id','>','0')
//将显示的字段名id更改为uid
->field(['count(*)'=>'num','pin'])
// //或者,第二种写法
// ->field("count(*) as num,pin")
->select();
10.排除字段
$data = db('ceshi')
->where('id','>','0')
//不显示name字段
->field(['name'],true)
// //或者,第二种写法
// ->field("name",true)
->select();
11.分页查询
$data = db('ceshi')
->where('id','>','0')
//显示,第几页的,几条
->page("2,2")
->select();
12.group 分组查询
$data = db('ceshi')
->where('id','>','0')
->group('id')
->select();
13.having 过滤查询
->having("id > 2")
14.多表联查
$data = db('ceshi')
//查找的字段
->field('ceshi.*,ceshi2.name')
//连表2,on后面的条件,第三参数可不写,left和right为左连接,右连接
->join('ceshi2','ceshi1.pin = ceshi2.pin','left')
->select();
15.表名起别名 (表名后 空格 别名)
16.参数绑定
$data = db('ceshi')
//占位
->where('id',':id')
//参数绑定
->bind(["id"=>"1"])
->select();
17.数据统计
->sum('字段名')
可选sum max min avg count等
五、数据增加
$sql = [
['id'=>'5','pin'=>'zhaoliu','name'=>'赵六'],
['id'=>'6','pin'=>'zhaoliu','name'=>'赵六']
]
$data = db('ceshi')
->insertAll($sql);
若插入一条,则$sql 写一维数组, insertAll改为insert
注意:插入数据的字段名必须和数据库一致
六、数据更新
$data = db('ceshi')
//等号可不写
->where('id',4)
//更改的数据
->update(['name'=>'a','pin'=>'a']);
自增
->setInc('字段名')
自减
->setDec('字段名',每次减几)
七、删除数据(四种方式,不带字段名的为id主键的值)
->where('id',1)->delete()
->where("id in(1,2,3)")->delete()
->delete([1,2,3])
->where("id>2 and id <4")->delete()
tp5数据库操作 Db类的更多相关文章
- Discuz!数据库操作DB类和C::t类介绍
类定义文件 DB类: 文件\source\class\class_core.php class DB extends discuz_database {} discuz_database类定义 文件\ ...
- 第三百零七节,Django框架,models.py模块,数据库操作——表类容的增删改查
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...
- 五 Django框架,models.py模块,数据库操作——表类容的增删改查
Django框架,models.py模块,数据库操作——表类容的增删改查 增加数据 create()方法,增加数据 save()方法,写入数据 第一种方式 表类名称(字段=值) 需要save()方法, ...
- 【转载】微软官方提供的Sqlserver数据库操作帮助类SQLHelper类
在.NET平台中,C#语言一般使用ADO.NET组件来操作Sqlserver数据库,通过ADO.NET组件可以实现连接数据库.查询数据集.执行SQL语句以及关闭数据库连接等操作,为此网上有很多开发者自 ...
- nodejs操作mongodb数据库封装DB类
这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评. 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关 ...
- nodejs mongodb 数据库封装DB类 -转
使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的. 关于mongoose的安装就是 npm install -g mongoose 这个DB类的数据库配置是 ...
- OSChina底层数据库操作的类(QueryHelper)源代码
OSChina 使用的是 dbutils 这个JDBC的封装类库来进行数据库操作. 而 QueryHelper 则是在 dbutils 的基础上进行一级简单的封装,提供一些经常使用的数据库操作方法和对 ...
- 封装类似thinkphp连贯操作数据库的Db类(简单版)。
<?php header("Content-Type:text/html;charset=utf-8"); /** *php操作mysql的工具类 */ class Db{ ...
- ADO.NET数据库操作助手类
SQL语句操作增删查改助手类 using System; using System.Collections.Generic; using System.Configuration; using Sys ...
随机推荐
- Self-hosting Sentry With Docker and Docker-compose
If a user encounters an error but you don't know about, did it happen at all? Sentry is one of the s ...
- max 宏定义取消:error C2589: error C2059: 语法错误 : “::”
原文链接:http://blog.csdn.net/danelumax2/article/details/9172465有修改! 一:关于Pcl和WIndef的冲突: 1. 错误输出 ./zlibra ...
- 杭电1159 Common Subsequence【最长公共子序列】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159 解题思路:任意先给出两个字符串 abcfbc abfcab,用dp[i][j]来记录当前最长的子 ...
- 序列模型(4)----门控循环单元(GRU)
一.GRU 其中, rt表示重置门,zt表示更新门. 重置门决定是否将之前的状态忘记.(作用相当于合并了 LSTM 中的遗忘门和传入门) 当rt趋于0的时候,前一个时刻的状态信息ht−1会被忘掉,隐藏 ...
- PHP 一句话木马
eval 函数 eval() 函数把字符串按照 PHP 代码来计算 该字符串必须是合法的 PHP 代码,且必须以分号结尾 如果没有在代码字符串中调用 return 语句,则返回 NULL.如果代码中存 ...
- sessionStorage与clone方法在项目中的应用
//资料列表: //JSON.parse(jsonstr); //json格式字符串转换成json对象 //JSON.stringify(jsonobj); //json对象转换成json格式字符串 ...
- BZOJ 3774 最优选择 (最小割+二分图)
题面传送门 题目大意:给你一个网格图,每个格子都有$a_{ij}$的代价和$b_{ij}$的回报,对于格子$ij$,想获得$b_{ij}$的回报,要么付出$a_{ij}$的代价,要么$ij$周围四联通 ...
- 编写 Node.js Rest API 的 10 个最佳实践
Node.js 除了用来编写 WEB 应用之外,还可以用来编写 API 服务,我们在本文中会介绍编写 Node.js Rest API 的最佳实践,包括如何命名路由.进行认证和测试等话题,内容摘要如下 ...
- nyoj 38 简单并查集的应用&最小生成树
#include<stdio.h> #include<stdlib.h> #define inf 0x3fffffff #define N 600 struct node { ...
- BigDecimal类(高精度小数)
位置:java.math.BigDecimal 作用:提供高精度小数数据类型及相关操作 一.基本介绍 BigDecimal为不可变的.任意精度的有符号十进制数,其值为(unscaledValue * ...