【发布时间】: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不打印。 -
我正在对结果进行回应。
-
为什么你认为这是一个编码问题?您的数据是什么样的?