2017-03-01 147 views
-1

我有這個MySql查詢沒有返回輸出,但如果我定義了一個低於200條記錄的限制,返回工作(返回記錄)。php查詢不返回行

通常這個查詢必須返回5000條記錄。

所以問題是我做錯了什麼,我必須做什麼來返回所有行。

在php.ini或其他修復此查詢的文件中是否有任何配置?

getConnection(); 
    $connection = getConnection(); 
    $stmt = $connection->prepare("SELECT * FROM estadoactual limit 200"); 
    $stmt->execute(); 

    $rows = $stmt->fetchAll(); 
    echo json_encode($rows); 

如果我把限制200查詢工作,但如果我刪除此限制的話就不要

我嘗試exand日在php.ini到512MB/2048MB內存限制而無法正常工作

+4

以何種方式不能在200條以上的記錄?順便說一句mysql_ *擴展從PHP版本7中刪除,你現在應該使用PDO – SpacePhoenix

+2

你需要告訴我們出了什麼問題。只是說「這行不通」並不能讓人們繼續前進! –

+0

也許你正在PHP的內存限制或執行時間限制?太多東西,你需要調試更多。是否啓用錯誤日誌並進行檢查? – chris85

回答

1

json_encode將失敗,值爲false傳遞給它的字符串具有無效的UTF8序列。這實際上意味着其中一條記錄具有非ASCII字符的字符串,並使用不同的字符編碼。還有其他可能的原因,但通常這是問題。

json_encode返回false時,您應該check which error occurred with json_last_error_msg

從數據庫讀取數據時,請務必使用utf-8編碼。在你的情況下,你應該使用呼叫此功能:

mysql_query("SET CHARACTER SET utf8") 

...在做查詢之前。

話雖如此:請將您的代碼轉換爲mysqliPDO,因爲這些mysql_函數幾年前已棄用,並且在最新版本的PHP中不再受支持。