查询语言

1.字符串查询:

安全性不高

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select(); 

2.数组查询:

最常用的方式,比较安全
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
 // 把查询条件传入查询方法
$User->where($condition)->select(); 

若有多个字段,默认的逻辑关系是AND,可以使用关键词 ['_logic'] 定义逻辑关系
$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR';
 // 把查询条件传入查询方法
$User->where($condition)->select(); 

3.对象查询

$User = M("User"); // 实例化User对象
 // 定义查询条件
$condition = new stdClass(); 
$condition->name = 'thinkphp'; 
$condition->status= 1; 
$User->where($condition)->select(); 

表达式查询


例:
$map['id']  = array('neq',100);

如果配置了DB_LIKE_FIELDS参数的话,某些字段也会自动进行模糊查询:
'DB_LIKE_FIELDS'=>'title|content'
的话,
$map['title'] = 'thinkphp';
就等价于: title like '%thinkphp%'


数组方式:
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');
$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND');
EXP表达式:
exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。
查询表达式不仅可用于查询条件,也可以用于数据更新,例如:
$User = M("User"); // 实例化User对象
 // 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['score'] = array('exp','score+1');// 用户的积分加1
$User->where('id=5')->save($data); // 根据条件保存修改的数据

快捷查询

1.不同字段,相同条件查询
$User = M("User"); // 实例化User对象
$map['name|title'] = 'thinkphp';
 // 把查询条件传入查询方法
$User->where($map)->select(); 
等价于:name= 'thinkphp' OR title = 'thinkphp'

2.不同字段,不同条件查询
$User = M("User"); // 实例化User对象
$map['status&title'] =array('1','thinkphp','_multi'=>true);
 // 把查询条件传入查询方法
$User->where($map)->select(); 
等价于: status= 1 AND title = 'thinkphp'

区间查询:

$map['id'] = array(array('gt',3),array('lt',10), 'or') ;
等价于:id>3 || id<10

统计查询:



SQL查询:

读操作:
$Model = new Model() // 实例化一个model对象 没有对应任何数据表
$Model->query("select * from think_user where status=1");

写操作:
$Model = new Model() // 实例化一个model对象 没有对应任何数据表
$Model->execute("update think_user set name='thinkPHP' where status=1");

动态查询:

getBy字段名:(返回符合条件的记录)
$user = $User->getByName('jack');

getByFiled字段名:(根据对应字段返回指定字段值)
$userId = $User->getFieldByName('jack','id');


子查询:

1.select方法
2.buildSql方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值