我的問題:
生產環境PHP7 測試環境PHP7
測試數據庫從正式copy出去的
A表之前的數據也一起copy出去了
線上 echo json_encode($data);出不來數據,但是切換到PHP5.6之後就出來。
測試echo json_encode($data);,沒有問題。PHP7。
找了很久發現幾個問題。
第一個:json_encode的數據一定要是utf-8的
5.5版本增加:失敗時返回的值從 null 字符串改成 FALSE。
原因:
php從mysql數據庫中取出數據如果不指定編碼方式爲utf8那麼中文將會變成”?”。因此返回值會變成false。
然後我那個表的數據是以前別人建的。數據也是當時添加進去的。關於金額的字段全部定義的 float
json_encode,對於float和double也是會有溢出的
然後我把金額的字段全改爲了decimal,然後發現還是不對,然後想到編碼問題。我之前的數據按照這個人設計的數據表
能力我覺得肯定utf8的數據沒有注意。之前的數據可能不是utf8的數據。所以我直接刪除了之前表中的數據,重新添加數據進去
完美解決!!!