PHP Json 编码 PDO::FETCH_ASSOC
Posted
技术标签:
【中文标题】PHP Json 编码 PDO::FETCH_ASSOC【英文标题】:PHP Json Encode PDO::FETCH_ASSOC 【发布时间】:2016-08-31 10:30:41 【问题描述】:我正在尝试返回我的 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 编码问题,所以我尝试在 $array 上执行 json_encode 之前的 utf8_encode,但结果相同,结果为空白页。谁能解释一下?
【问题讨论】:
第二个例子中没有使用PDO::FETCH_ASSOC
。删除该选项是否允许您json_encode()
结果?
不,我在删除它时也会得到一个空白页。
等等,你是不是因为没有打印出 json_encoded 结果而得到一个空白页? print_r
打印到屏幕,json_encode
不打印。
我正在对结果进行回应。
为什么你认为这是一个编码问题?您的数据是什么样的?
【参考方案1】:
json_encode
对字符编码敏感。如果无法处理编码,它将失败。 print_r
不是。它会很高兴地打印出你给它的任何东西。
utf8_encode
修复仅在源数据中的字符串编码为 ISO-8859-1 时才有效。假设这是真的,它应该工作。确保你这样做...https://***.com/a/2790107/111755
【讨论】:
以上是关于PHP Json 编码 PDO::FETCH_ASSOC的主要内容,如果未能解决你的问题,请参考以下文章
kendoui parameterMap 解码 php 对象的正确 json 编码是啥?
PHP json 编码 - 格式错误的 UTF-8 字符,可能编码不正确