PHP Json编码PDO :: FETCH_ASSOC

时间:2016-05-05 15:00:38

标签: php json pdo

我试图返回MSSQL数据库表的所有行并在JSON_ENCODE中吐出它们。

当我使用它并回显$ json时,我得到一个空白页面。当我对该var进行var_dump时,我得到一个bool,false。

$sth = $db->prepare("SELECT * FROM dbo.Devices");
$sth->execute();

$array = $sth->fetchAll( PDO::FETCH_ASSOC );
$json = json_encode($array);

但是,如果我将相同的fetchAll放入结果var并打印出来,那么它可以正常工作!

Working using print function.
$result = $sth->FetchAll();
print_r($result);

我已经读过有类似问题的其他人,并且这是一个UTF8编码问题所以我试图在json_encode之前在$数组上执行utf8_encode,但结果与空白页相同。谁能解释一下呢?

1 个答案:

答案 0 :(得分:1)

json_encode是字符编码敏感的。如果无法处理编码,它将失败。 print_r不是。它会愉快地打印出你给它的任何东西。

utf8_encode修复只有在源数据中的字符串编码为ISO-8859-1时才有效。假设这是真的它应该工作。确保你这样做...... https://stackoverflow.com/a/2790107/111755