thinkphp 数据库查询怎么查?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 数据库查询怎么查?相关的知识,希望对你有一定的参考价值。

看文档里面的放在代码里面直接报错:Class 'app\index\controller\Db' not found,这个DB是要引入什么东西吗?

thinkphp如何查询数据库?

数据库查询

ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询操作。

查询条件可以用于CURD等任何操作,作为where方法的参数传入即可。

ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。

查询方式

一、使用字符串作为查询条件

这是最传统的方式,但是安全性不高,例如:

1

2

   

$User = M("User"); // 实例化User对象

$User->where('type=1 AND status=1')->select();

   

最后生成的SQL语句是

1

   

SELECT * FROM think_user WHERE type=1 AND status=1

   

二、使用数组作为查询条件

1

2

3

4

5

   

$User = M("User"); // 实例化User对象

$condition['name'] = 'thinkphp';

$condition['status'] = 1;

 // 把查询条件传入查询方法

$User->where($condition)->select();

   

最后生成的SQL语句是

1

   

SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1

   

如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:

1

2

3

4

5

6

   

$User = M("User"); // 实例化User对象

$condition['name'] = 'thinkphp';

$condition['account'] = 'thinkphp';

$condition['_logic'] = 'OR'; //定义查询逻辑

 // 把查询条件传入查询方法

$User->where($condition)->select();

   

最后生成的SQL语句是

1

   

SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'

   


三、使用对象方式来查询 (这里以stdClass内置对象为例)

1

2

3

4

5

6

   

$User = M("User"); // 实例化User对象

 // 定义查询条件

$condition = new stdClass();

$condition->name = 'thinkphp';

$condition->status= 1;

$User->where($condition)->select();

   

最后生成的SQL语句和上面一样

1

   

SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1

   

使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法。

表达式查询

上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:

1

   

$map['字段名'] = array('表达式','查询条件');

   

表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:


1

2

3

4

   

$map['id']  = array('eq',100);  id = 100;

 $map['id']  = array('egt',100);id >= 100

 $map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询

 $map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

   

本文来自ThinkPHP框架技术文章栏目:http://www.php.cn/phpkj/thinkphp/

以上就是thinkphp如何查询数据库的详细内容,更多请关注php中文网其它相关文章!

参考技术A M('table')->count();
见手册统计查询:
方法说明
Count 统计数量,参数是要统计的字段名(可选)
Max 获取最大值,参数是要统计的字段名(必须)
Min 获取最小值,参数是要统计的字段名(必须)
Avg 获取平均值,参数是要统计的字段名(必须)
Sum 获取总分,参数是要统计的字段名(必须)追问

我只是想问那个Db是怎么来的,是要引入什么吗

以上是关于thinkphp 数据库查询怎么查?的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp 关联查询 怎么统计关联表查出来的数据数量

sql查询base64 数据 thinkphp怎么解密

THINKPHP 3.1.3 查询数据库的时候查询结果出现NULL

ThinkPHP 数据的增删改查

04 tp6 的查数据 findselectfindOrEmptyfindOrFailtoArrayselectOrFailvaluecolumn《ThinkPHP6 入门到电商实战》

04 tp6 的查数据 findselectfindOrEmptyfindOrFailtoArrayselectOrFailvaluecolumn《ThinkPHP6 入门到电商实战》