php findall,fleaphp常用函数findAll方法的使用和示例
fleaphp中的常用函数findAll,主要用与构造sql语句并查询数据,findAll方法的使用和示例
findAll的函数原型是/**
* 查询所有符合条件的记录及相关数据,返回一个包含多行记录的二维数组,失败时返回 false
*
* @param mixed $conditions
* @param string $sort
* @param mixed $limit
* @param mixed $fields
* @param mixed $queryLinks
*
* @return array
*/
function & findAll($conditions = null, $sort = null, $limit = null, $fields = '*', $queryLinks = true)
{
list($whereby, $distinct) = $this->getWhere($conditions);
// 处理排序
$sortby = $sort != '' ? " ORDER BY {$sort}" : '';
// 处理 $limit
if (is_array($limit)) {
list($length, $offset) = $limit;
} else {
$length = $limit;
$offset = null;
}
// 构造从主表查询数据的 SQL 语句
$enableLinks = count($this->links) > 0 && $this->autoLink && $queryLinks;
$fields = $this->dbo->qfields($fields, $this->fullTableName, $this->schema);
if ($enableLinks) {
// 当有关联需要处理时,必须获得主表的主键字段值
$sql = "SELECT {$distinct} {$this->qpka}, {$fields} FROM {$this->qtableName} {$whereby} {$sortby}";
} else {
$sql = "SELECT {$distinct} {$fields} FROM {$this->qtableName} {$whereby} {$sortby}";
}
// 根据 $length 和 $offset 参数决定是否使用限定结果集的查询
if (null !== $length || null !== $offset) {
$result = $this->dbo->selectLimit($sql, $length, $offset);
} else {
$result = $this->dbo->execute($sql);
}
if ($enableLinks) {
/**
* 查询时同时将主键值单独提取出来,
* 并且准备一个以主键值为键名的二维数组用于关联数据的装配
*/
$pkvs = array();
$assocRowset = null;
$rowset = $this->dbo->getAllWithFieldRefs($result, $this->pka, $pkvs, $assocRowset);
$in = 'IN (' . implode(',', array_map(array(& $this->dbo, 'qstr'), $pkvs)) . ')';
} else {
$rowset = $this->dbo->getAll($result);
}
unset($result);
// 如果没有关联需要处理或者没有查询结果,则直接返回查询结果
if (!$enableLinks || empty($rowset) || !$this->autoLink) {
return $rowset;
}
/**
* 遍历每一个关联对象,并从关联对象获取查询语句
*
* 查询获得数据后,将关联表的数据和主表数据装配在一起
*/
$callback = create_function('& $r, $o, $m', '$r[$m] = null;');
foreach ($this->links as $link) {
/* @var $link FLEA_Db_TableLink */
$mn = $link->mappingName;
if (!$link->enabled || !$link->linkRead) { continue; }
if (!$link->countOnly) {
array_walk($assocRowset, $callback, $mn);
$sql = $link->getFindSQL($in);
$this->dbo->assemble($sql, $assocRowset, $mn, $link->oneToOne, $this->pka, $link->limit);
} else {
$link->calcCount($assocRowset, $mn, $in);
}
}
return $rowset;
}
findAll各个参数的说明
$conditions = null, 查询条件
通常数组,包含字段名和值
例如array('fieldname' => 'value1','fieldnameb' => 'value2')
$sort = null, 排序
字段以及排序的方式,通常这是一个字串
例如'ID ASC,post_date DESC' //如果只有一个条件可以这样 'ID ASC'
$limit = null, 限定数量
通常可以是一个数字,或者是从多少位开始取多少个结果'3,10' //意思是从第10个开始,取3个记录,也可以直接数字3 表示取3条记录
$fields = '*', 需要查询显示的字段,默认全部显示
例如array('ID','post_title','post_parent')
$queryLinks = true
fleaphp函数findAll方法的使用和示例$rowsets = $tableposts->findAll(array('post_type'=>'post'),'ID ASC,post_date DESC',array(10,0),array('ID','post_title','post_parent'));
dump($rowsets);
php findall,fleaphp常用函数findAll方法的使用和示例相关推荐
- SQLserver 常用函数适用方法(转载)
SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...
- 【终结版】C#常用函数和方法集汇总
C#里面的常用的函数和方法非常重要,然而做题的时候会经常忘记这些封装好的方法,所以我总结一下 C#常用函数和方法集. [1]C#操作字符串的常用使用方法 在 C# 中,您可以使用字符数组来表示字符串, ...
- Python列表操作常用函数、方法大全
目录 简介 列表基本方法 访问列表元素(即索引) index方法 enumerate()函数 在列表中添加元素 append方法 insert方法 修改列表元素 删除列表元素 del语句 pop()函 ...
- Python 批量创建线程及threading.Thread类的常用函数及方法
在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...
- python常用方法总结-Python3常用函数、方法总结(持续更新…)
最近刷LeetCode,自己自娱自乐完之后去discussion看大佬们的各种巧妙解法,总是止不住的双击666--加上最近Python3用的比较多(虽然Python实在不推荐跑算法题目,一是运行效率太 ...
- python基础:数组常用函数和方法
列表的特点: 有序且可重复 1.创建一个列表: li = ["zhangsan","lisi",2,4,6],当然也可以创建一个空列表 li = [ ] 2.列 ...
- abs函数的使用方法 oracle_SQL Server 常用函数使用方法
1.SubString():用于截取指定字符串的方法.该方法有三个参数: 参数1:用于指定要操作的字符串. 参数2:用于指定要截取的字符串的起始位置,起始值为 1 . 参数3:用于指定要截取的长度. ...
- Python :字符串,常用函数。list常用函数,方法。
字符串: text="only YOU Loving yoU,你是我的唯一,jUst YoU,我能等你下课吗?能不能一起去逛街?达能小王子" #大小写转换 text.upper() ...
- c#.net常用函数和方法集
1.DateTime 数字型 System.DateTime currentTime= new System.DateTime(); 1.1 取当前年月日时分秒 ...
最新文章
- Caused by: java.lang.RuntimeException: can not run elasticsearch as root
- 《Sibelius 脚本程序设计》连载(二十六) - 2.13 utils库中的函数
- Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Python
- python代码示例下载-python下xml解析库lxml最新版下载安装以及代码示例
- [Spring cloud 一步步实现广告系统] 10. 使用Ribbon 实现微服务调用
- Mahout推荐算法API详解
- 链表反转2(Reverse Linked List II)
- PHP类实例教程(七):析构函数与PHP的垃圾回收
- CSS Hack 汇总速查一览
- 图像放大 问题 即 二维数组放大
- android padding作用,android:padding和android:layout_margin的区别
- 华为交换机telnet和ftp服务开启/关闭命令
- 修改文件中的内容,使用fileinput模块
- 50年代黄岩师专_300多位30、40和50年代获得第一份技术工作的开发人员的故事
- Spring boot整合shiro权限管理
- Response.Write 用法总结
- wifi 中间人攻击_揭秘3·15晚会“Wi-Fi中间人攻击”的操作原理
- spring security 注解_Spring框架使用@Autowired自动装配引发的讨论
- 历届电大计算机网考试题及答案,电大2012年计算机应用基础网考统考试题及答案...
- 二元函数泰勒公式例题_泰勒公式与函数展开的操作方法