yii---where or该如何使用
今天调试YII项目的时候,遇到一个奇葩的事儿,在调试 where or 查询的时候:调试语句是这样:
$str = static::find()->where(['or','username' => $username,'mobile' => $account]);
echo "<br>";
echo $str->createCommand()->getRawSql();
很明显,我要到这个数据库里面找到 username等于$username,或者是mobile等于$account的数据。但是这样得到的SQL是:
SELECT * FROM `user` WHERE (dd_18314416390) OR (18314416390)
很明显是不对的,即使是放到MYSQL上执行,也是错的。
究其原因:yii where or 写错啦!
应该这样:
$str = static::find()->where(['or',['username'=>$username],['mobile' => $account]]);
echo "<br>";
echo $str->createCommand()->getRawSql();
这样生成的SQL是这样的:
SELECT * FROM `user` WHERE (`username`='dd_18314416390') OR (`mobile`='18314416390')
这样就对啦!
yii---where or该如何使用的更多相关文章
- Yii 2.x Behavior - 类图
yii\base\Component 继承这个类的类都具备扩展行为的能力
- shell 带签名请求,yii 处理带签名的请求
处理请求 class TestController extends Controller { public function init() { if(!YII_ENV_DEV){ throw new ...
- yii框架安装心得
最近在学习yii框架, 现在将遇到的一些问题和解决方法写出来与大家分享. yii框架的安装: 下载yii框架之后, 打开文件运行init.bat文件, 如果闪退就打开php的扩展(php_openss ...
- Yii 开发微信 '您提交的数据无法被验证'
使用Yii开发微信时,出现 [error][yii\web\HttpException:] exception 'yii\web\BadRequestHttpException' with messa ...
- [Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]
Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如 ...
- 在linux上如何通过composer安装yii
Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库. b) 其中一些库依赖于其他库. c) 你声明你所依赖的东西. d) Composer 会找出哪个版 ...
- YII Install 安装
Download Yii is an open source project released under the terms of the BSD License. This means t ...
- Yii rbac原理和实践
Yii框架中集成分层的 RBAC,代码位于vendor\yiisoft\yii2\rbac中,rbac工作原理分为两部分,建立授权数据和进行权限检查. 如上,一个角色拥有某个权限,如果希望用户拥有这个 ...
- Yii ActiveRecord 的via和viaTable示例
Yii中,将两个不相关的表利用中间表关联有via和viaTable两种方法,这里通过用户权限查询来进行示例. 关系如上,需要建立三个表 用户表 权限表 用户表 数据: 权限表 数据: 关联表 数据: ...
- YII 错误 SQLSTATE[HY000] [2002] No such file or directory
在使用yii的yii\db\Connnection时发生错误 <?php namespace app\controllers; use yii\web\Controller; use yii\d ...
随机推荐
- windows下redis启动失败提示maxheap flag
windows下redis启动失败 D:\redis>redis-server.exe redis.conf [] Oct ::39.789 # The Windows version of R ...
- VS2008 远程调试器未成功安装,没法使用?
Win7 64位系统,安装VS2008后,想使用远程调试功能,结果不能使用! 在VS2008的安装包下有个 Remote Debugger 的文件夹,在里面找到 x64 的 rdbgsetup.exe ...
- 源码分析六(org.springframework.util包之Assert类)
一:抽象类Assert 抽象类不能够实例化对象,但是可以被继承,Assert类是功能类,所以方法都是static修饰 所以可以直接 类名.方法 调用. public abstract class A ...
- opencv获取IP摄像头(IP-camera)实时视频流
之前这篇文章讲了如何通过网络摄像头(web camera)获取实时视频流,但是这种方法的缺陷就是摄像头和主机必须连在一起,那这种在室外部署的时候就会非常麻烦并且不安全,所以后来找了下用海康威视或者大华 ...
- js中===与==区别
本文出自:http://www.cnblogs.com/yiki/archive/2012/05/08/2489687.html 1.对于string,number等基础类型,==和===是有区别的 ...
- Iframe难点备忘
1 iframe处理session过期,框架页面跳转登录页面的问题 <script language="JavaScript"> if (window != top) ...
- 大杂烩 -- Java中Iterator的fast-fail分析
基础大杂烩 -- 目录 Java中的Iterator非常方便地为所有的数据源提供了一个统一的数据读取(删除)的接口,但是新手通常在使用的时候容易报如下错误ConcurrentModificationE ...
- UDP通信-UdpClient
static void Main(string[] args) { Console.WriteLine("发送端"); byte[] buffer = System.Text.En ...
- JavaScript之with语句
with 语句的作用是将代码的作用域设置到一个特定的对象中. with可以简化多次写同一个对象的工作, 示例: var o={name:'a',age:25,sex:'male'} var na=o. ...
- PHP错误 。Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT
If you wan't to use the alternative syntax for switch statements this won't work: <div> <?p ...