Home >Backend Development >PHP Tutorial >thinkphp实现like模糊查询实例_PHP

thinkphp实现like模糊查询实例_PHP

WBOY
WBOYOriginal
2016-05-31 19:28:341234browse

ThinkPHP

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