FleaPHP框架数据库查询条件($conditions)写法总结


Posted in PHP onMarch 19, 2016

本文实例讲述了FleaPHP框架数据库查询条件($conditions)写法。分享给大家供大家参考,具体如下:

在FleaPHP中,凡是用到数据库查询的函数,都需要查询条件参数$conditions,现讲述用法如下:

举例:

// $conditions 保存查询条件
$conditions = 'level_ix > 1';
// $tableOrders 是一个订单数据表的表数据入口对象
$order = $tableOrders->find($conditions, 'created DESC', 'id, title, body');
$conditions = array('username' => 'dualface');
// $tableUsers 是一个用户信息数据表的表数据入口对象
$user = $tableUsers->find($conditions);

$conditions 参数可以是整数、字符串和数组三种类型:

1.如果 $conditions 参数是一个整数,则假定该整数为主键字段值。

// 查询主键字段值为1的记录
$user = $tableUsers->find(1);
// 如果主键字段名为"id",则生成的where字句为"WHERE `id` = 1"

2.如果 $conditions 参数是一个字符串,则该字符串将直接作为查询条件,这种方式可以支持最灵活的查询条件。 例如:

$conditions = 'id < 3'
$user = $tableUsers->find($conditions);
//生成的where字句为"WHERE id < 3"

3.1.如果 $conditions 参数是一个数组,且指定了键名和值,则查询条件中字段名为键名,字段值等于键值。例如:

// 查询id字段值为3的记录
$conditions = array(
  'id' => '1',
 );
$user = $tableUsers->find($conditions);
//生成的where字句为"WHERE `id` = 1"

3.2.如果 $conditions 参数是一个数组,但其中的元素没有键名, 则假定键值为自定义查询条件,例如:

$conditions = array('id = 1');
// 生成的where字句为"WHERE `id` = 1"
$user = $tableUsers->find($conditions);

3.3.$conditions 为数组时,可以混用字符串和键值对两种风格:

$conditions = array(
  'id < 3',
  'sex' => 'male',
);
$user = $tableUsers->find($conditions);
// 生成的where字句为"id < 3 AND `sex` = 'male'"

$conditions 为数组时,多个查询条件之间将使用 AND 布尔运算符进行连接。

3.4."in()"查询在FleaPHP中的实现。(原文由DreamPig发表于http://www.fleaphp.org/bbs/viewthread.php?tid=2168)
我们有时候要用到in这样的操作,那么在condition里面怎么写呢?

// 假如主键名为"id",需要查询id的值为1、2、3其中之一,则可以这样写:
$condition = array(
  'in()' => array(1,2,3),
)
$user = $tableUsers->find($conditions);
// 生成的where子句为"WHERE `id` IN (1, 2, 3)"

那么如果不是主键的话怎么写了呢? 也很简单,提供键值对即可。例如:

$condition = array(
  'in()' => array(
          'username' => array('username1','username2')
         )
  )
$user = $tableUsers->find($conditions);
// 生成的where子句为"WHERE `username` IN ('username1', 'username2')"

4.find()函数中其它参数的含义和用法如下:

4.1.$sort 参数指定查询时的排序方式,类型只能为字符串
例如 'created ASC' 表示按照"created"字段进行从小到大的排序。

4.2.$fields 参数指定查询结果中要包含哪些字段,类型可以为字符串或数组
当数据表的字段很多时,通过指定 $fields 参数可以避免查询不需要的字段,从而提高性能。

$fields 参数即可是以","逗号分隔的字段名,也可以是包含多个字段名的数组,例如:

$fields = array('title', 'created');
//也可以写成下面的字符串形式,两种写法作用相同,区别在于自动生成的字段名两边将会添加上"`"符号,以防止出现字段名与SQL关键字冲突的情况出现。建议手写时也加上"`"字符
$fields = 'title, created';
$user = $tableUsers->find('id < 10',NULL,$fields);

推荐使用数组,这样表数据入口处理起来更快一些。

希望本文所述对大家基于FleaPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP脚本数据库功能详解(下)
Oct 09 PHP
phpfans留言版用到的install.php
Jan 04 PHP
PHP对字符串的递增运算分析
Aug 08 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
如何用PHP实现插入排序?
Apr 10 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
PHP实现简单数字分页效果
Jul 26 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 #PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 #PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 #PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 #PHP
详解在PHP的Yii框架中使用行为Behaviors的方法
Mar 18 #PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 #PHP
Symfony2函数用法实例分析
Mar 18 #PHP
You might like
php实现图片等比例缩放代码
2015/07/23 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
会自动逐行上升的文本框
2006/06/30 Javascript
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
编写React组件项目实践分析
2018/03/04 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
[00:35]可解锁地面特效
2018/12/20 DOTA
python中global用法实例分析
2015/04/30 Python
举例讲解Linux系统下Python调用系统Shell的方法
2015/11/07 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
详解python中index()、find()方法
2019/08/29 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
python入门之基础语法学习笔记
2020/02/08 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
酒店个人培训自我鉴定
2013/12/11 职场文书
纠风工作实施方案
2014/03/15 职场文书
老公保证书范文
2014/04/29 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
护士长2014年度工作总结
2014/11/11 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
CSS3 实现的图片悬停的切换按钮
2021/04/13 HTML / CSS
面试提问mysql一张表到底能存多少数据
2022/03/13 MySQL