php - TP5 where方法问题

查看:128
本文介绍了php - TP5 where方法问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我发现了TP5一个很奇葩的问题,在TP3.2的时候,在一个where里可以用多维数组,设置多项查询条件(子条件)
如:

where([array('id'=>'1','username'=>'2'),array('username'=>'3','password'=>'4'),'_logic'=>'or'])->find();

这段代码生成的sql是
WHERE ( id = '1' AND username = '2' ) OR ( username = '3' AND password = '4' ) LIMIT 1

上面一个括号就是一个子条件,很清楚明了,但到了TP5,不再支持'_logic'字段,而是采用where和whereOr方法,好像已经不能以子条件的形式生成的SQL了,那要怎么才能写出复杂的where语句呢。请大神指教指教。

解决方案

数组是支持的:

$map['name'] = 'thinkphp';
$map['status'] = 1;
Db::table('think_user')->where($map)->select(); 

可以直接使用字符串查询

where("id = '1' AND username = '2'")->find(); 

建议你直接查文档:
查询方法

这篇关于php - TP5 where方法问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆