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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
PHP生成静态页面详解
Nov 19 PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 PHP
php抽奖小程序的实现代码
Jun 18 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
php验证码生成器
May 24 PHP
Smarty模板类内部原理实例分析
Jul 03 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 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中http_build_query 的一个问题
2012/03/25 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
2013/11/19 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
jquery使用Cookie和JSON记录用户最近浏览历史
2016/04/19 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
angularjs实现猜数字大小功能
2020/05/20 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
layui form.render('select', 'test2') 更新渲染的方法
2019/09/27 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
python读写json文件的简单实现
2017/04/11 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
python中for用来遍历range函数的方法
2018/06/08 Python
Python爬虫实现(伪)球迷速成
2018/06/10 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
Python configparser模块应用过程解析
2020/08/14 Python
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
英语翻译系毕业生求职信
2013/09/29 职场文书
四年级下册教学反思
2014/02/01 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
同事打架检讨书
2015/05/06 职场文书
运动会开幕式主持词
2015/07/01 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
python控制台打印log输出重复的解决方法
2021/05/14 Python
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python