php返回结果判断,老司机在判断返回结果时翻了个身(ThinkPHP)

news/2024/7/5 1:56:12

“这篇文章属于基本内容。看到它的学生检查他们的代码是否有同样的问题

“序言小q又带着问题来了,今天的问题估计是大多数同志都会犯的问题。

问题是使用ThinkPHP时查询返回的结果是否为空。

你自信吗?你不知道的是空的!如果你是这样认为的,那就简单的看一下文章吧!

“出现这个问题的原因是,不清楚查询数据库时框架返回什么类型。知道类型是一个很简单的问题。

”——1——笑死。第一,问题再现。数据库只是一个表,用户。这个表没有数据,只是一个空表。

数据库然后使用ThinkPHP框架查询这个表的数据

查询代码Q给你三秒钟的时间思考这里会返回什么值。要么返回临时数据,要么返回用户表的数据。

小Q想都没想就说肯定会返回临时数据,因为用户表根本没有数据。

然后我们来看看打印出来的结果。

小Q睁大了眼睛,没有看到“目前没有数据”两个字,而是返回了一个空阵(暂时这么认为)。

“这里暂时认为这是一个空数组,其实它只是看起来像一个数组,真正的数据结构是结果集。至于结果集是什么,百度本身!

”——4——返回结果这次,小Q傻了!怎么会这样!在小Q的强烈要求下,日期数据打印出来了

希望你返回的结果还是空数组(暂时这么认为)

返回结果,那么必须为空()才能判断一个数组是否为空,对吗?

小Q自信地点点头。这一次,没有问题。我这样写了好几年了,就是以虚来判断。

自信你只能判断这个值是不是空一次才能让小Q看到骨灰盒在哭。

代码如下

-8码打印小Q脸上挂满了灿烂的笑容,我不忍心点击请求按钮。

无奈带着小Q的期待,狠心按下了请求键。

退货结果看到上面的退货结果,小Q脸上的笑容突然戛然而止,紧接着是满脸疑惑的大脸板。

怀疑再次检查书写的判断代码是否有问题。

长期纵横战场几十年,复制粘贴,拿起键盘就是干劲怎么能把这个代码写错。

小Q终于坐不住了,笑着问,怎么回事!

小Q的笑容终于说到点子上了。请继续看如何让小Q明白真相。

第二,解决问题,当务之急是检查返回的数据是否是我们坚持的数组,然后进行检查。

于是我拿起键盘敲了八下。那就是函数is_array。

再次发起请求

打印结果此时小Q的表情是这样的,真的很乱

你之前不是这样的,我不慌不忙的打开官网的文档给小q看。

官网明确表示数据返回的结果是数据集,5.1版直接默认。

如果你继续往下看官网文档,你会看到有哪些额外的方法。你知道第一个吗?是空的吗?

小Q惊呆了,说:“你不能这样判断!”!

额外的方法只是一个测试吗?

考码小Q最后一把鼻涕一把泪的说,我还以为我眼睛有问题呢!

为什么不能判断是不是空数据?长出了一口气。

返回结果”小Q疑惑的看了我一眼,说“自从使用5.1框架以来,所有的判断都是这样写的。小Q小跑着出去,只说了一句话,在线路没问题之前赶紧把代码修好,不然我就下岗了。

“解决了小q的问题,那就谈点别的。

第三,扩大解决小Q的问题,来说几个严肃的话题。

上面有一个省略问题,就是空,用来判断PHP中的数组是否为空。

这个小q坚信是这样的,那么这个用法还能在框架中使用吗?

那当然没问题!请看下图

代码返回的结果必须和预期的一样,真相永远是真相。

返回结果四。总结给小Q的总结,本质总是那么简单。

虽然返回的结果可以在数据库的配置文件中修改,但是不建议卡卡修改。

既然框架已经默认了结果集,那么就用结果结果集,如果非要用数组的话,也是可以的。

小Q这个问题之后,要注意以下几个问题。

使用查找查询时,如果结果为空,可以使用判断!在使用选择查询时进行判断,如果结果为空,则返回的结果是一个空的结果集,可以使用结果集的额外函数toArray()将其转换为数组,然后使用空进行判断。但是如果用结果集来判断的话,就是$ data->:可以用isEmpty()提供的函数来判断。“坚持学习、写博客、分享是卡卡从职业生涯开始就一直坚持的信念。希望广大互联网上的卡卡文章能给你带来一点帮助。这是卡卡。下次见。

“以上是老司机翻车(ThinkPHP)在判断返回结果时的细节,更多。


http://lihuaxi.xjx100.cn/news/241246.html

相关文章

打通B/S与C/S !让HTML5 WebSocket与.NET Socket公用同一个服务端!

随着HTML5 WebSocket技术的日益成熟与普及,我们能够借助WebSocket来更加方便地打通BS与CS -- 由于B/S中的WebSocket能够直接连接到C/S的服务端,并进行双向通信。例如以下图所看到的:一.对Socket Server的要求我们能够尝试让Socket Server透明…

Jfinal Generator 不需要生成带某个前缀的表名数组的方法

2019独角兽企业重金招聘Python工程师标准>>> package com.demo.common.model; import javax.sql.DataSource; import com.jfinal.kit.PathKit; import com.jfinal.kit.Prop; import com.jfinal.kit.PropKit; import com.jfinal.plugin.activerecord.generato…

1008 Elevator

思路如下:用一个整型数组存楼层,0号元素为0(开始停在0层),每读入一个元素,和上一个比较,更大说明是上升,总时长加上楼层差*6,反之说明是下降,总时长加上楼层差*4。最后再管停留时间&…

java中mypoiexception,java - 如何使用Poi获取Java中单元格的数据验证源? - 堆栈内存溢出...

此问题包含多个不同的问题。首先,我们需要获取工作表的数据验证,然后为每个数据验证获取数据验证所适用的Excel单元格范围。 如果该单元格位于该单元格范围之一中,并且数据验证是列表约束,则进行进一步处理。 否则返回默认值。如果…

jfinal框架下使用c3P0连接池连接sql server 2008

2019独角兽企业重金招聘Python工程师标准>>> 闲话少说 进入正题 首先是工程需要的jar包 然后是c3p0的配置文件。我是这样配置的 仅供参考 jdbcDriver com.microsoft.sqlserver.jdbc.SQLServerDriver jdbcUrl jdbc:sqlserver://localhost:7777;databaseNametest us…

(C++)一行代码递归实现辗转相除法

定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。 int gcd(int a,int b){return !b?a:gcd(b,a%b); } 这里递归边界是 gcd(a,0)a; 递归式是 gcd(a,b)gcd(b,a%b);

mysql left join超时,MySQL 行锁超时排查方法优化

一、大纲#### 20191219 10:10:10,234 | com.alibaba.druid.filter.logging.Log4jFilter.statementLogError(Log4jFilter.java:152) | ERROR | {conn-10593, pstmt-38675}executeerror.updatexxxsetxxx ? , xxx ?whereRowGuid ?com.mysql.jdbc.exceptions.jdbc4.MySQLTra…

Python常用操作记录

当前日期格式化: time.strftime(%Y-%m-%d,time.localtime(time.time())) pprint: import pprint pp pprint.PrettyPrinter(indent4) pp.pprint(stuff)或 import pprint pprint.pprint(stuff)django 模板遍历dict: {% for k,v in item.items…