tp5.0 模型查询数据的返回类型,分页
一开始用painate()这个函数的时候,发现有的查询方式不能使用这个函数,由此了解到了模型查询和普通查询返回类型的不同
1.原生查询方法
Db::query("select * from shop");
查询成功返回:二维数组
array(2) {
[0]=>
array(5) {
["username"]=>
string(0) ""
["title"]=>
string(10) "java课本"
["comment"]=>
string(22) "java课本课本课本"
["time"]=>
string(19) "2019-02-18 23:12:03"
["id"]=>
int(1)
}
[1]=>
array(5) {
["username"]=>
string(0) ""
["title"]=>
string(1) "c"
["comment"]=>
string(10) "cccccccccc"
["time"]=>
string(19) "2019-02-18 23:12:26"
["id"]=>
int(2)
}
}
查询失败:array(0) { }
二维数组为空
2.查询构造器
select方法
Db::table('shop')->select();
返回的是二维数组,和原生的查询结果一样,查询失败同样返回空数组。
find方法
Db::table('shop')->find();
只能查询一条数据,返回的是第一个查询到的数据,方式是一维数组
array(5) {
["username"] => string(0) ""
["title"] => string(10) "java课本"
["comment"] => string(22) "java课本课本课本"
["time"] => string(19) "2019-02-18 23:12:03"
["id"] => int(1)
}
查询失败:NULL
需要分页的时候:
Db::name('shop')->paginate(10);
需要分页的时候不能用select,因为数组在tp5中是不支持直接分页的,->paginate()的使用者必须是个object类型。
3.模型
首先知道,模型查出来的数据都是对象,要转化为数组的方法是在database.php加上
'resultset_type' => '\think\Collection',
便可以调用->toArray()方法
实际上,因为tp5框架的设计,两种数据在进行数据处理上没有差别
1.get方法
①用来查询一条数据
$test3=Shop::get(1);或者$test3 = Shop::get(['id' => '1']);
echo $test3->time;
返回类型:对象。
通过
$test3=Shop::get(1)->toArray();变为一维数组
②查询失败:返回NULL
2.all方法
① 用来查询一堆数据,toArray()后变为二维数组
② 遍历
foreach ($test3 as $key => $value) {
var_dump($value['time']);//time是字段名字
}
③查询失败
不变为数组返回:} object(think\Collection)#19 (1) { ["items":protected]=> array(0) { } }
变为数组返回:空数组
3.select方法
$test4=Shop::select();
foreach ($test4 as $key ) {
var_dump($key['time']);//time字段
}
使用处理二维数组的方法处理就好了
4.find也可以用
5.分页
使用者必须是对象
模型的分页,官方:
$test6=Shop::paginate(10);
我自己试了下,发现find查询出来的语句也是可以分页的,select就不行了。
tp5.0 模型查询数据的返回类型,分页的更多相关文章
- ThinkPHP5.0框架开发--第8章 TP5.0 模型
ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...
- AFNetworking 2.0 获取json数据时,返回 NSLocalizedDescription=Request failed: unacceptable content-type: text/html, 解决方法.
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSe ...
- hibernate框架之-查询结果集返回类型
Hibernate支持HQL和SQL的查询,返回结果支持POJO类型或字段/数组的形式. 开发中用Hibernate进行数据库查询,用的是SQL.原来需要查询一个表的几乎所有字段,所以我使用了addE ...
- Mybatis全部查询遇到的返回类型的小问题
在学习Mybatis3过程中遇到一个小问题,觉得需要注意就把它写下来了 在查询所有数据的时候方法是这样的 public List<User> findAll(){ ..... } 在它的u ...
- ThinkPHP5.0 模型查询操作
1.获取单个数据 //取出主键为1的数据 $user = User::get(1); echo $user->name; // 使用数组查询 $user = User::get(['name' ...
- SQLSERVER 2008 查询数据字段名类型
SELECT * FROM Master..SysDatabases ORDER BY Name SELECT Name,* FROM Master..SysDatabases where Name= ...
- oracle 函数 输入值,查询数据,返回相应处理结果
create or replace function FUN_SEARCH_ORDERBY ( INSTACEID in varchar2,TYE IN varchar2) return varcha ...
- mongdb查询数据并且返回数据条数
var totall; var a = db.db("Magiccat").collection("jishi_content").find().count({ ...
- 【TP3.2 + 其他任何PHP框架】编辑、删除、添加数据,返回原分页 (ajax+form两种方式提交均可以)
1.目的1:在如下的一个页面中,p=2,比如我们删除数据id=13,通过ajax提交{id,p} 这2个参数,就可以了,页面返回json的url参数中原样带上p即可. 2.目的2: 步骤1:在如下页面 ...
随机推荐
- Jmeter 登陆性能测试
1.打开Jmeter,新建一个线程组:测试计划--添加--Threads(users)---线程组 如图: 2.首先要添加一个HTTP默认请求,为什么要添加这个呢? 如果要测试的系统域名或者IP地址是 ...
- JDBC执行存储过程的四种情况 (转)
本文主要是总结 如何实现 JDBC调用Oracle的存储过程,从以下情况分别介绍: [1].只有输入IN参数,没有输出OUT参数 [2].既有输入IN参数,也有输出OUT参数,输出是简单值(非列表) ...
- HDU 1426 Sudoku Killer(dfs 解数独)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1426 Sudoku Killer Time Limit: 2000/1000 MS (Java/Oth ...
- scala性能测试
主要对比scala 的for, while循环,以及和java for while循环作对比 scala代码 object TestScalaClass { var maxindex = 100000 ...
- iOS开发中用到的第三方库概览
前言:记录一下使用过和接触过的第三方库,重要程度与顺序无关 网络请求: AFNetworking:AFNetworking is a delightful networking library for ...
- antd不想写那么多option怎么办
做项目的时候发现如果下拉列表选项多的时候会写很多的 Option ,但是用到下拉列表的地方又超级多.所以自己写了一个方法,哪需要就放到哪. 记录一下方法.留待以后用 selectStreetIdCha ...
- iview+axios实现文件取消上传
iview+axios实现文件取消上传 iview框架的上传文件目前不支持在上传文件的过程中取消上传,结合axios请求可以实现:使用iview的上传和拖拽功能,却使用axios的上传文件功能来实现取 ...
- 复制D:\\day05目录下的所有文件到D:\\copy,并将.txt文件改为.java文件。
**解题思路: 1.首先定义一个静态的refile方法,参数传入两个文件路径 2.要复制目录下的所有文件,首先查询File类的方法,可以使用listFiles方法得到目录下的文件 3.想到这问题基本就 ...
- Windows无法安装到这个磁盘 选中的磁盘具有MBR分区表解决方法
在安装 win10的时候,会出现这种提示:Windows 无法安装到这个磁盘.选中的磁 盘具有 MBR 分区表.在 EFI 系统上, Windows 只能安装到 GPT 磁盘.出现这种 情况主要是因为 ...
- SQL Server中的三种Join方式
1.测试数据准备 参考:Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 这篇博客中的实验数据准备.这两篇博客使用了相同的实验数据. 2.SQ ...