我从 MSSQL 数据库通过PDO使用 fetchAll()从表格中选择所有数据。我只是尝试对结果执行 json_encode 但是当我执行json_encode时,在使用echo显示结果时,我得到一个空白页面。我可以在我试图编码并获取所有数据的同一个数组上进行var转储。我在php日志中没有错误,并且做一个json_last_error让我没有。也许有人可以在下面的代码中看到一些我不知道的东西。
$sth = $db->prepare("SELECT * FROM dbo.Devices");
$sth->execute();
$result = $sth->fetchAll();
//var_dump($result);
echo json_encode($result);
我还尝试对数据执行utf8_encode,然后将其传递给json_encode,认为这是一个字符编码问题,这很好地给了我一个没有错误消息的空白页面。
编辑:
如果我使用fetch vs fetchAll获取一行,则会将数据转换为罚款。
这样可行:
$result = $sth->fetch(PDO::FETCH_ASSOC);
但这并不是:
$result = $sth->fetchAll(PDO::FETCH_ASSOC);