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实现与ASP Banner组件相似的类
Oct 09 PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
Feb 14 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
Jun 13 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
jQuery Mobile + PHP实现文件上传
Dec 12 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
php遍历类中包含的所有元素的方法
May 12 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP PDOStatement::fetch讲解
Jan 31 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 AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
2014/06/17 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
2019/10/30 PHP
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
控制台报错object is not a function的解决方法
2014/08/24 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
jquery自定义右键菜单、全选、不连续选择
2016/03/01 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
JavaScript如何借用构造函数继承
2019/11/06 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
Python 文件和输入输出小结
2013/10/09 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
Python用户自定义异常的实现
2020/12/25 Python
父亲节活动策划方案
2014/08/24 职场文书
答谢词范文
2015/01/05 职场文书
五星级酒店前台接待岗位职责
2015/04/02 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python