PDO fetchAll返回空数组,但rowCount确实返回实际结果

时间:2014-03-04 21:48:52

标签: php json pdo

我有这段代码:

    $json = array();
$hoy = date("Y-m-d");
$consulta = "SELECT e.*,s.sal_nombre, concat(eve_titulo, ' - ',sal_nombre) as title FROM evento e, sala s where s.sal_id=e.sal_id ORDER BY id";

// conexión bbdd
try {
$bdd = new PDO('mysql:host=localhost;dbname=prueba2', 'root', '');
} catch(Exception $e) {
exit('Unable to connect to database.');
}

//ejecutamos consulta
$resultado = $bdd->query($consulta) or die(print_r($bdd->errorInfo()));

// enviamos el resultado codificado en json a la página que lo llama
echo json_encode($resultado->fetchAll(PDO::FETCH_ASSOC));

$result = $resultado->rowCount();
print_r($result);

打印结果时,打印4表示正确的结果,但json_encode不返回任何内容,如果是的话     的print_r($ resultado->使用fetchall());

它返回一个空数组

1 个答案:

答案 0 :(得分:2)

问题出现是因为返回的数据未在utf-8中编码,因为json_encode需要这样做。

要解决此问题,必须将charset=utf8属性添加到PDO的DSN。