php 与sql返回值不同怎么办

藏色散人
藏色散人 原创
2023-03-16 22:54:01 864浏览

php与sql返回值不同是因为代码对结果做了只取当前一行的处理,其解决办法是:1、找到相应的PHP代码文件;2、通过“$query->result()”方法获取完全的结果;3、保存已修改的文件即可。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

php 与sql返回值不同怎么办?

具体问题描述:

想要的查询结果:传入手机号和类型,把Y-m-d H:i:s文本格式的时间字段转换成Y-m-d的格式,并分组+统计个数

这是项目里的sql语句,注:返回结果的语句项目里有重写,返回的是查询的所得到的所有结果,并不是返回一行的结果(天啊,我再重点重申一次,人家重写了!人家重写了!人家重写了!不要再用惯性思维看了...)

public function getSmsByTelephone($sms_mobile,$type) {
    $query = $this->db->query("SELECT DATE_FORMAT(`add_date`, '%Y-%m-%d') num,count(*)  FROM " . DB_PREFIX . "sms_mobile WHERE sms_mobile = '" . $sms_mobile ."' AND  type = '" . $type . "' group by num");    
    return $query->row;
}

这是在phpadmin里的查询结果

1fd0c1dda4d0942f82ad08ba2bbd62f.jpg

这是程序里获取的方法,然后打印

657cc1c9e9effe7f67d5e3727dc5a9e.jpg

这是页面的打印结果

d5738aace5cf615346e978e81a07513.jpg

疑问:底层sql语句都是用$this->db->query去查询,不会在底层对sql语句加限制,要限制,就自己在sql里加limit去限制条数。
我的sql也没有限制limit,不知道为什么只出来一条

解决办法:

ci 框架里面写法和这个很相似。刚才很多人都说了,row 的解释:

0e6e099e6f0d80029a0e36080657440.jpg

如果想要获取完全的结果请使用-$query->result() 来获取结果。

如果是用的CI请看下http://codeigniter.org.cn/user_guide/database/results.html#id2这个地址里面有解释!

总结下:遇到这样的问题可以先看下手册

推荐学习:《PHP视频教程

以上就是php 与sql返回值不同怎么办的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。