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 intval的测试代码发现问题
Jul 27 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
Nov 04 PHP
Zend Framework动作助手FlashMessenger用法详解
Mar 05 PHP
php生成图片缩略图功能示例
Feb 22 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
yii2安装详细流程
May 23 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
phplock(php进程锁) v1.0 beta1
2009/11/24 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
Jquery cookie操作代码
2010/03/14 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
基于Bootstrap+jQuery.validate实现Form表单验证
2014/12/16 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
js+ajax实现获取文件大小的方法
2015/12/08 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
2019/01/30 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
python增加矩阵维度的实例讲解
2018/04/04 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
对Pyhon实现静态变量全局变量的方法详解
2019/01/11 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
python代码xml转txt实例
2020/03/10 Python
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
求职信怎么写范文
2014/05/26 职场文书
经理聘任证明
2015/03/02 职场文书
倡议书范文大全
2015/04/28 职场文书
Java实现聊天机器人完善版
2021/07/04 Java/Android
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers