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 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 PHP
PHP对象递归引用造成内存泄漏分析
Aug 28 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 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计算两个路径的相对路径
2013/06/14 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
用JS将搜索的关键字高亮显示实现代码
2013/11/08 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
2014/01/09 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
基于node实现websocket协议
2016/04/25 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
python uuid模块使用实例
2015/04/08 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
优秀大学生的自我评价
2014/01/16 职场文书
职业生涯规划书前言
2014/04/15 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
员工担保书范本
2015/09/22 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
浅谈golang 中time.After释放的问题
2021/05/05 Golang
浅谈redis整数集为什么不能降级
2021/07/25 Redis