print_r返回所有mysql结果,但json_encode不返回任何内容

时间:2014-04-15 06:35:37

标签: php mysql pdo

我想从数据库中返回一些信息。在MySQL中执行查询的问题它工作正常,但是当我在PHP中运行相同的查询时,它不起作用。它仅在我将限制设置为小于9时才有效。任何9及以上的东西都会返回一个空白屏幕。我的表目前有40多行。

当我启动print_r($ results)时。返回所有行但使用json_encode($ results),它返回空白屏幕,并且仅在限制为8时返回。

ini_set("display_errors",1);
$Db = new PDO ( "mysql:host=127.0.0.1;dbname=recycle",'root','' );
$Db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$Query = $Db->prepare('SELECT * FROM recyclable');

$Query->execute();

$Results = $Query->fetchAll(PDO::FETCH_OBJ);

echo json_encode($Results); [error]
//print_r($Results) works.

我已经删除了数据库并再次尝试了。仍然无法正常工作,甚至对其他数据库表进行了相同的查询,但仍无效。

无法强调这对我造成多大的挫折感。 我正在使用XAMPP

1.8.3 [PHP:5.5.3]

2 个答案:

答案 0 :(得分:2)

这可能是因为“内存不足”问题..只是做一个

开头的

ini_set("display_errors",1)"E_ALL错误

答案 1 :(得分:1)

您必须在pdo连接中添加字符集。

$Db = new PDO ( "mysql:host=127.0.0.1;dbname=recycle;charset=utf8",'root','' );