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插入排序实现代码
Apr 04 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
php中的动态调用实例分析
Jan 07 PHP
PHP实现微信发红包程序
Aug 24 PHP
php实现简单的上传进度条
Nov 17 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
PHP表单验证内容是否为空的实现代码
Nov 14 PHP
php获取文章内容第一张图片的方法示例
Jul 03 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 PHP
Yii框架学习笔记之应用组件操作示例
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 函数学习简单小结
2010/07/08 PHP
JS简单实现元素复制示例附图
2013/11/19 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
学习jQuey中的return false
2015/12/18 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
2020/07/20 Javascript
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
python安装本地whl的实例步骤
2019/10/12 Python
python反转列表的三种方式解析
2019/11/08 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
高中数学教学反思
2014/01/30 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
大学班级学风建设方案
2014/05/01 职场文书
远程培训的心得体会
2014/09/01 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
英文感谢信格式
2015/01/21 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers