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转成EXE文件
Oct 09 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
Aug 15 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
php array_udiff_assoc 计算两个数组的差集实例
Nov 12 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 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中使用XML
2006/10/09 PHP
一个简单的PHP入门源程序
2006/10/09 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
jqgrid 表格数据导出实例
2013/11/21 Javascript
js中数组(Array)的排序(sort)注意事项说明
2014/01/24 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
js实现缓动动画
2020/11/25 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
总经理的岗位职责
2014/02/23 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
建国大业观后感600字
2015/06/01 职场文书
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android