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英文字母大小写转换函数小结
May 03 PHP
php中实现精确设置session过期时间的方法
Jul 17 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
CI框架数据库查询缓存优化的方法
Nov 21 PHP
php的4种常用运行方式详解
Dec 22 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
php-7.3.6 编译安装过程
Feb 11 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
php 传值赋值与引用赋值的区别
2010/12/29 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php删除数组元素示例分享
2014/02/17 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jQuery插件slider实现拖动滑块选取价格范围
2015/04/30 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
详解vue 组件
2020/06/11 Javascript
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
Python定时器线程池原理详解
2020/02/26 Python
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
测试驱动开发的主要步骤是什么
2014/12/10 面试题
JS原生实现轮播图的几种方法
2021/03/23 Javascript
客服文员岗位职责
2013/11/29 职场文书
文秘专业个人求职信
2013/12/22 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
建党伟业观后感
2015/06/01 职场文书
信息简报范文
2015/07/21 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA