thinkphp实现like模糊查询实例


Posted in PHP onOctober 29, 2014

本文实例讲述了thinkphp实现like模糊查询的方法,分享给大家供大家参考。具体实现方法如下:

目前使用thinkphp框架进行项目开发的人越来越多了,由于其封装性较好,导致了很多纯PHP开发的部分不易上手,本文实例即以like模糊查询为例对此加以说明。

这里主要通过举例来说明用法:

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

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

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

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

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

最后生成的SQL语句是
SELECT * FROM think_user WHERE type=1 AND status=1

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

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

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

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

$condition['_logic'] = 'OR';

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

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

最后生成的SQL语句是
SELECT * FROM think_user WHERE `name`='thinkphp' OR `account`='thinkphp'

二、数组方式作为查询条件

讲了这么多了like查询怎么实现呢,下面看

$userForm=M('user'); 

$where['name']=array('like','jb51%');

$userForm->where($where)->select();

这里的like查询即为:
name like 'jb51%'

查询语句:

$where['name']=array('like',array('%jb51%','%.com'),'OR');

这里的like查询即为:
name like '%jb51%' or name like '%.com'

查询语句:

$where['name']=array(array('like','%a%'),array('like','%b%'),array('like','%c%'),'jb51','or');

这里的like查询即为:
(`name` LIKE '%a%') OR (`name` LIKE '%b%') OR (`name` LIKE '%c%') OR (`name` = 'jb51')

查询语句:

$where['_string']='(name like "%jb51%")  OR (title like "%jb51")';

这里的like查询即为:
name like '%jb51%' or title like '%jb51'

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
MYSQL数据库初学者使用指南
Nov 16 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
php获取QQ头像并显示的方法
Dec 23 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
php简单实现sql防注入的方法
Apr 22 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
Sep 21 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
PHP 计算两个时间段之间交集的天数示例
Oct 24 PHP
thinkphp 框架数据库切换实现方法分析
May 18 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 #PHP
PHP多个文件上传到服务器实例
Oct 29 #PHP
php跨站攻击实例分析
Oct 28 #PHP
php获取根域名方法汇总
Oct 28 #PHP
3款值得推荐的微信开发开源框架
Oct 28 #PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 #PHP
smarty中js的调用方法示例
Oct 27 #PHP
You might like
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
php+mysql实现无限级分类
2015/11/11 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
Dojo 学习要点
2010/09/03 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
Jquery+ajax+JAVA(servlet)实现下拉菜单异步取值
2016/03/23 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
django 发送手机验证码的示例代码
2018/04/25 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
PHP面试题附答案
2015/11/28 面试题
三好学生自我鉴定
2013/12/17 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
生日宴会主持词
2014/03/20 职场文书
工作收入住址证明
2014/10/28 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技