“这篇文章属于基本内容。看到它的学生检查他们的代码是否有同样的问题
“序言小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)在判断返回结果时的细节,更多。