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安装攻略:常见问题解答(一)
Oct 09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
Oct 09 PHP
php自动获取目录下的模板的代码
Aug 08 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
PHP strstr 函数判断字符串是否否存在的实例代码
Sep 28 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
Jun 22 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
php中 $$str 中 &quot;$$&quot; 的详解
Jul 06 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
php跨站攻击实例分析
2014/10/28 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP API接口必备之输出json格式数据示例代码
2017/06/27 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
Python脚本实现格式化css文件
2015/04/08 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
python实现自动发送报警监控邮件
2018/06/21 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Python 调用 ES、Solr、Phoenix的示例代码
2020/11/23 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
简述安装Slackware Linux系统的过程
2012/01/12 面试题
通信工程毕业生自荐信
2013/11/01 职场文书
小学生考试获奖感言
2014/01/30 职场文书
婚庆司仪主持词
2014/03/15 职场文书
护理专业自荐书
2014/06/04 职场文书
医生个人年度总结
2015/02/28 职场文书
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang