我试图返回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,但结果与空白页相同。谁能解释一下呢?
答案 0 :(得分:1)
json_encode
是字符编码敏感的。如果无法处理编码,它将失败。 print_r
不是。它会愉快地打印出你给它的任何东西。
utf8_encode
修复只有在源数据中的字符串编码为ISO-8859-1时才有效。假设这是真的它应该工作。确保你这样做...... https://stackoverflow.com/a/2790107/111755