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:在如下页面 ...
随机推荐
- msfconsole_无法启动问题
service postgresql start # 启动数据库服务 msfdb init # 初始化数据库 msfconsole # 启动metasploit
- div可编辑框,去除粘贴文字样式😄
上个月做了个聊天的需求(网页版的).说到聊天都想到输入框,说到输入框都会想到input,但是input标签是不支持插入图片的(包括areatext标签).查阅了一些资料就看到div标签有一个属性con ...
- JSON、JSONP、XML的区别
这两天看jquery手册的时候看到了jsonp.发现手册把jsonp与json放在一起讲解了,所以想写篇文章 梳理一下这三者的关系. jsonp: jsonp是json的一种“使用模式”,可以让网页从 ...
- context.RewritePath
context.RewritePath原理修改HttpRequest类中的Path属性
- 一步一步部署SSIS包图解教程
本文就SQL统计分析SSIS包的部署进行一次详细的部署图解教程,Sql Server Integration Services 提供了非常简单的部署工具,利用这些工具可以方便地将包文件(*.dtsx) ...
- 【luogu P3398 仓鼠找sugar】 题解
题目链接:https://www.luogu.org/problemnew/show/P3398 辣鸡树剖1300ms 倍增大法吼啊 #include <cstdio> #include ...
- Android学习笔记_61_手机安全卫士知识点归纳(1)状态/形状图形 GPS 设备管理器DeviceAdminReceiver ImageView属性
1.在做程序自动安装更新的时候 ,必须保证程序的签名和包名是相同. C:\Documents and Settings\zehua\.android \ debug.keystore debug ...
- Entity Framework 五
连接情景中的CRUD操作: 连接场景中的CRUD操作是一项相当简单的任务,因为默认情况下,上下文会自动跟踪实体在其生命周期中发生的更改,前提是AutoDetectChangesEnabled为true ...
- python 实现远程上传文件夹
python2 upload.py "ip" "root" "password" "22" "Only Pro ...
- Flask-SQLAlchemy安装及设置
Flask-SQLAlchemy安装及设置 SQLALchemy 实际上是对数据库的抽象,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换 ...