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 和 MySQL 基础教程(四)
Oct 09 PHP
php 注释规范
Mar 29 PHP
自定义php类(查找/修改)xml文档
Mar 26 PHP
php+mysql数据库查询实例
Jan 21 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
Jan 28 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
Feb 12 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
Yii中实现处理前后台登录的新方法
Dec 28 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
PHP预定义接口――Iterator用法示例
Jun 05 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去除换行符的方法小结(PHP_EOL变量的使用)
2013/02/16 PHP
php stream_get_meta_data返回值
2013/09/29 PHP
一个javascript参数的小问题
2008/03/02 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
Angular.js实现多个checkbox只能选择一个的方法示例
2017/02/24 Javascript
关于vue.extend和vue.component的区别浅析
2017/08/16 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
Python 和 JS 有哪些相同之处
2017/11/23 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
Solaris操作系统的线程机制
2015/07/28 面试题
2014年中班下学期工作总结
2014/12/11 职场文书
优秀护士事迹材料
2014/12/25 职场文书
房屋认购协议书
2015/01/29 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
2015年手术室工作总结
2015/05/11 职场文书
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android