php框架路由的find,查询find/findAll,3.1版SP框架手册教程,SpeedPHP快速开发框架,中文PHP框架 - Powered by Discuz!...

本文介绍了SpeedPHP框架中的数据库查找方法,包括find和findAll。find用于查找数据表中的一条记录,而findAll则返回所有匹配条件的记录。通过示例代码展示了如何设置查找条件、排序方式和指定返回字段,帮助开发者更好地理解和应用这两个函数。
摘要由CSDN通过智能技术生成

首先我们来看一下将会用到的数据表gb(如加上表前缀,则表全名为 spgb_gb),这是一个留言本程序使用的数据表。

33d2b5a610a9c43d6ff8e099b9993604.gif

spmodel-crud-table[1].jpg (31.61 KB, 下载次数: 11)

2012-8-4 15:36 上传

有的时候我们会觉得数据库方面较难入门,因为看着书本上那些十几个字段的一些数据表例子,感觉自己怎么也不能设计出那么复杂的表结构。但其实这并非必要,在很多时候,我们可以先按自己的理解去建立出可以供自己使用的数据表,哪怕表中就两三个字段。字段将会随着程序的编写而继续增加,到了程序的完成之时,字段也就将近完整了。那么,到了下一次再编写同类的程序,那么这些字段就可以作为我们的参考。

下面我们来介绍SpeedPHP框架在数据库查找方法:find —— 从数据表中查找一条记录

用法:find($conditions = null, $sort = null, $fields = null)

参数:

$conditions,数组形式,查找条件,数组的键是数据表中的字段名,键对应的值是该字段的条件。

比如要在留言本中查找到名为“小李”留言者的第一条留言,那么$conditions条件则应该是:

$conditions = array( // PHP数组

'name' => '小李', // 键name是数据表中的字段,小李是我们要查找的数据

);

*$sort,字符串,指定结果排序方向

*$fields,字符串,特殊指定返回的字段

在find,findAll,findSQL等多个查找函数以及update,delete等函数中出现的参数$conditions,除了可以是数组格式外,还可以是字符串的形式,而字符串形式的$conditions就如同SQL语句中的WHERE后面的条件字符串一样的使用。

如:

$conditions = array('name'=>'小李');

就等同于

$conditions = " 'name' = '小李' ";

例子:

// 首先需要准备查找条件

$conditions = array( 'name' => '小李' );

$gb = spClass('gb'); // 初始化留言本模型类

$result = $gb->find($conditions); // 查找

dump($result); // 查看结果,

echo $result['contents']; // 直接输出结果中的留言内容,对应字段contents复制代码

如果数据表中有留言者是小李的数据:(有两条记录)

12 小李 我的留言 2009-10-26 10:04:53 218.82.32.12

13 小李 我的第二条留言 2009-10-26 10:04:53 218.82.32.12

那么将返回

$result = array(

'gid' => 12,

'name' => '小李',

'contents' => '我的留言',

'post_time' => '2009-10-26 10:04:53',

'post_ip' => '218.82.32.12',

'replay' => ''

);

请注意,find仅是返回了第一条符合条件的记录。

返回:

按条件查询不到任何数据,find将返回FALSE

如查找到预期的结果则返回结果数组,数组的键是字段名,数组的值是数据。

这里需要注明一下,由于sp框架虽然简单易用,但是高级的功能也是非常多的,所以在介绍相关的类和函数的时候,会遇到一些较复杂的参数或者是函数,如上例中的$sort,$fields参数。为了我们可以尽快掌握sp框架进行实践开发,不受到这些在特殊情况下才用到的高级功能的影响,我们将并非必要理解的参数或函数标上了*号,而且也是仅做较少的说明,如果需要进一步了解这些参数或函数的作用,请参考sp框架手册或到网站上参与讨论。

findAll —— 从数据表中查找记录

findAll与find的区别在于findAll是返回全部符合条件的记录,而find仅是返回findAll结果的第一条记录。

用法:findAll($conditions = null, $sort = null, $fields = null, $limit = null)

参数:

$conditions,数组形式,查找条件,同find的$conditions

*$sort,字符串,指定结果排序方向

*$fields,字符串,特殊指定返回的字段

*$limit,字符串,返回结果数量限制

例子:

// 还是需要查找小李的留言,不过这次是查找他的全部的留言。

// 首先需要准备查找条件

$conditions = array( 'name' => '小李' ); // 条件是同样的

$gb = spClass('gb'); // 初始化留言本模型类

$result = $gb->findAll($conditions); // 使用了findAll

dump($result); // 查看结果,复制代码

数据表中有留言者是小李的数据:

12 小李 我的留言 2009-10-26 10:04:53 218.82.32.12

13 小李 我的第二条留言 2009-10-26 10:04:53 218.82.32.12

findAll将返回

$result = array(

0 => array(

'gid' => 12,

'name' => '小李',

'contents' => '我的留言',

'post_time' => '2009-10-26 10:04:53',

'post_ip' => '218.82.32.12',

'replay' => ''

),

1 => array(

'gid' => 13,

'name' => '小李',

'contents' => '我的第二条留言',

'post_time' => '2009-10-26 10:04:53',

'post_ip' => '218.82.32.12',

'replay' => ''

),

);复制代码

返回:

按条件查询不到任何数据,findAll将返回FALSE

如查找到预期的结果则返回结果数组。对比find返回的结果,findAll是返回了二维数组,并且数组的每一项将是代表一条记录的数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值