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裡的查詢結果
這是程式裡取得的方法,然後列印
這是頁面的列印結果
疑問:底層sql語句都是用$this->db->query去查詢,不會在底層對sql語句加限制,要限制,就自己在sql裡加limit去限制條數。
我的sql也沒有限制limit,不知道為什麼只出來一條
解決方法:
ci 框架裡面寫法和這個很相似。剛才很多人都說了,row 的解釋:
#如果想要得到完全的結果請使用-$query->result() 來取得結果。
如果是用的CI請看下http://codeigniter.org.cn/user_guide/database/results.html#id2這個位址裡面有解釋!
總結下:遇到這樣的問題可以先看下手冊
推薦學習:《PHP影片教學》
以上是php 與sql回傳值不同怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!