Home >php教程 >php手册 >thinkphp实现like模糊查询实例

thinkphp实现like模糊查询实例

WBOY
WBOYOriginal
2016-06-06 20:18:441202browse

这篇文章主要介绍了thinkphp实现like模糊查询,以实例形式讲述了字符串形式及数组形式作为查询条件的like模糊查询实现方法,是非常具有实用价值的技巧,需要的朋友

本文实例讲述了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'

希望本文所述对大家的PHP程序设计有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn