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 相关文章推荐
第十四节 命名空间 [14]
Oct 09 PHP
Mysql的常用命令
Oct 09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
生成卡号php代码
Apr 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 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
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
2011/07/08 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
React 实现拖拽功能的示例代码
2019/01/06 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
python 网络编程常用代码段
2016/08/28 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Python根据成绩分析系统浅析
2019/02/11 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
怎样写好自我鉴定
2013/12/04 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
责任胜于能力演讲稿
2014/05/20 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
sql注入报错之注入原理实例解析
2022/06/10 MySQL