FleaPHP数据库操作的Condition分析 在我们使用fleaphp的过程中我们用到最多的可能TDG里面的find之类的函数,而里面的condition的编写表示不大理解,这里我就大概的讲解一下Condition的使用方式
$condition主要有三个格式 1.数字 $condition=2 数字的意思就是根据主键=2这样的形式去搜索
2.字符串 $c 其实这个就是我们在平时写sql的时候where之后的那个条件,更加复杂的如下 $c; $cmailto:`email`='xiemengjun@gmail.com'">`email`='xiemengjun@gmail.com')";
3.数组形式 3.1数组包含key和value $condition=array('username'=>'xiemengjun','password'=>'123456'); 上面的就是key=value 然后用and组合 ,上面这个数组的意思就是 $c;
3.2数组元素是字符串 $conditions = array("username <> 'xiemengjun'", "sex = 'male'"); 上面的意思就是用and组合 $c;
3.3两种混合方式 $conditions = array( 'leve_ix > 3', 'sex' => 'male', ); 上面的意思就是 $c;
3.4in操作 我们有时候要用到in这样的操作,那么在condition里面怎么写呢? $condition=array('in()'=>array(1,2,3)) 在默认情况下是主键在后面数组里面搜索 上面的意思就是id in ( 1,2,3 )
那么如果不是主键的话怎么写了呢? $condition=array('in()'=>array('username'=>array('sss','ddd'))) 上面的意思就是username in('sss','ddd');
3.5自定义组合 大家看到了上面的数组都是用and组合的,那么我们想用or组合呢?怎么办呢 $conditions =array( array('Field1','Value1','LIKE','OR'), array('Field2','Value2','=','OR'), array('Field3','Value3','>'), ); 上面的意思就是 $c
是不是觉得fleaphp里面的condition很强大.
4.关联表限制条件 上面我介绍的都是相对于主表而言的,那么我们如何来操作关联表的条件呢?我们来看下面 $conditions =array( array('Field1','Value1','LIKE','OR'), array('mappingName.Field',$this->primaryKey,'=','OR'), //这里的field是指关联表中的字段 array('Field2','Value2','>'), );
上面的mappingName就是我们在写关联的时候书写的名字 整个的条件的意思就是 $c
就我应用到的condition大概就是上面这一些了,大家如果还有其他的高级应用希望指点一二!
|