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中MVC的开发经验分享
May 17 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
ThinkPHP CURD方法之order方法详解
Jun 18 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
PHP常用的三种设计模式
Feb 17 PHP
php nginx 实时输出的简单实现方法
Jan 21 PHP
php workerman定时任务的实现代码
Dec 23 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
详解PHP设计模式之依赖注入模式
May 25 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个人网站架设连环讲(二)
2006/10/09 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
详解vue-cli 构建Vue项目遇到的坑
2017/08/30 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[43:57]Liquid vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Jupyter notebook设置背景主题,字体大小及自动补全代码的操作
2020/04/13 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
人民检察院起诉书
2015/05/20 职场文书
Python实现简繁体转换
2021/06/07 Python