php查询不返回行

时间:2017-03-01 22:03:16

标签: php mysql sql

我有这个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,但不能正常工作

1 个答案:

答案 0 :(得分:1)

当传递给它的字符串具有无效的UTF8序列时,

json_encode将失败,值为false。这实际上意味着您的一个记录具有非ASCII字符的字符串,并使用不同的字符编码。还有其他可能的原因,但通常这是问题所在。

json_encode返回false时,您应该check which error occurred with json_last_error_msg

从数据库中读取数据时,请务必使用utf-8编码。在您的情况下,您应该使用调用此函数:

mysql_query("SET CHARACTER SET utf8") 

...在进行查询之前。

话虽如此:请将您的代码转换为mysqliPDO,因为几年前这些mysql_函数已被弃用,并且在最新版本的PHP中不再受支持