分享:ThinkPHP的数据库查询方式

发布时间:2020-06-25编辑:脚本学堂
本文介绍下,thinkphp开发框架中,有关数据库查询方式的一些内容,学习下thinkphp中数据库查询的方法,感兴趣的朋友可以研究下。

本节内容:
thinkphp数据库查询方式

ThinkPHP版本为:ThinkPHP 3.1.2
内容:数据库查询方式

1,普通查询方式;

a.字符串
 

复制代码 代码示例:
$arr = $m->where('id = 1 and username="张三"')->select();

b.数组(建议使用)
 

复制代码 代码示例:
<?php
$data['age'] = 12;
$data['username'] = '李四';
$data['_logic'] = 'or';  //默认方式:$data['_logic'] = 'and';
$arr = $m->where($data)->find();

2,表达式(大小写不敏感)
EQ  等于
NEQ  不等于
GT  大于
EGT  大于等于
LT   小于
ELT   小于等于
如:

复制代码 代码示例:
$data['id'] = array('egt',2);
$m->where($data)->select();

LIKE模糊查询

例如:

复制代码 代码示例:
$data['username'] = array('like','张%');
   $arr = $m->where($data)->select();

NOTLIKE

例如:

复制代码 代码示例:
$data['username'] = array('notlike','张%');  //注意notlike中间没有空格
$arr =  $m->where($data)->select();

注意:如果一个字段要匹配多个通配符,其形式如下:
 

复制代码 代码示例:
$data['username'] = array('like',array('张%','李%'),'or'); //找到姓张的或者姓李的
$arr =  $m->where($data)->select();
BETWEEN
    $data['id'] = array('between',array('2','4'));
   $arr =  $m->where($data)->select();
NOT BETWEEN
    $data['id'] = array('not between',array('2','4')); //注意not between中间带空格
    $arr =  $m->where($data)->select();
IN
   $data['id'] = array('in',array(2,4));
   $arr =  $m->where($data)->select();

3,区间查询
 

复制代码 代码示例:
1.$data['id'] = array(array('gt',2),array('lt',6)); //第三个参数默认是and
2.$data['id'] = array(array('lt',2),array('gt',6),'or'); //第三个参数手动指定or时
3.$data['username'] = array(array('like','%张%'),array('like','%李%'),array('eq','xqlg'),'or');//形成的sql语句形如:SELECT * FROM `tp_user` WHERE ( (`username` LIKE '%张%') OR (`username` LIKE '%李%') OR (`username` = 'xqlg') )

5,统计查询
count  获取数据条数
max   获取最大值

例如:

复制代码 代码示例:
$m->max('id');$m->where('age=100')->count();
 

min  获取最小值
avg  获取平值均
sum 获取总和

6,sql直接查询
a.query  主要是读取数据,成功返回结果集,失败返回false
例如:

复制代码 代码示例:
$m->query('select * from tp_user where id > 1');

b.execute  主要是执行sql语句,成功返回影响的行数,失败返回false
例如:

复制代码 代码示例:
$m->execute('insert into tp_user(`username`) values("老六")');