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 相关文章推荐
php UTF8 文件的签名问题
Oct 30 PHP
php正则表达式(regar expression)
Sep 10 PHP
PHP实现时间轴函数代码
Oct 08 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
基于 Swoole 的微信扫码登录功能实现代码
Jan 15 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
php 定义404页面的实现代码
2012/11/19 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
vue2.0 axios前后端数据处理实例代码
2017/06/30 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
数据管理员的自我评价分享
2013/11/15 职场文书
管理站站长岗位职责
2013/11/27 职场文书
护理专科毕业自荐信范文
2014/04/21 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis