我有这个MySql查询没有返回输出但是如果我定义一个低于200条记录的限制,则返回有效(返回记录)。
通常此查询必须返回5000条记录。
所以问题是我做错了什么以及我要做什么来返回所有行。
php.ini或其他文件中是否有修复此查询的配置?
getConnection();
$connection = getConnection();
$stmt = $connection->prepare("SELECT * FROM estadoactual limit 200");
$stmt->execute( );
$rows = $stmt->fetchAll();
echo json_encode($rows);
如果我设置限制200,则查询有效,但如果我删除此限制,则不要
我尝试将php.ini中的内存限制为512MB / 2048MB,但不能正常工作
答案 0 :(得分:1)
json_encode
将失败,值为false
。这实际上意味着您的一个记录具有非ASCII字符的字符串,并使用不同的字符编码。还有其他可能的原因,但通常这是问题所在。
当json_encode
返回false
时,您应该check which error occurred with json_last_error_msg
。
从数据库中读取数据时,请务必使用utf-8
编码。在您的情况下,您应该使用调用此函数:
mysql_query("SET CHARACTER SET utf8")
...在进行查询之前。
话虽如此:请将您的代码转换为mysqli
或PDO
,因为几年前这些mysql_
函数已被弃用,并且在最新版本的PHP中不再受支持