Я пытаюсь вернуть все строки моей таблицы базы данных MSSQL и выплюнуть их в JSON_ENCODE.
Когда я использую это и повторяю $ json, я получаю пустую страницу. Когда я делаю var_dump на этом var, я получаю 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, поэтому я попытался сделать utf8_encode в массиве $ перед json_encode, но с тем же результатом пустой страницы. Может кто-нибудь объяснить это?
json_encode
чувствителен к кодировке символов. Он не сработает, если он не сможет обработать кодировку. print_r
нет. Он будет счастливо распечатать все, что вы ему дадите.
Исправление utf8_encode
будет работать только в том случае, если строки в исходных данных кодируются как ISO-8859-1. Предполагая, что это правда, он должен работать. Убедитесь, что вы сделали это так … https://stackoverflow.com/a/2790107/111755