PHP Json Encode PDO :: FETCH_ASSOC

Estoy intentando devolver todas las filas de mi tabla de base de datos MSSQL y escupirlas en un JSON_ENCODE.

Cuando uso esto y hago eco del $ json obtengo una página en blanco. Cuando hago un var_dump en esa var me sale un bool, falso.

$sth = $db->prepare("SELECT * FROM dbo.Devices"); $sth->execute(); $array = $sth->fetchAll( PDO::FETCH_ASSOC ); $json = json_encode($array); 

Sin embargo, si tuviera que colocar el mismo fetchAll en un resultado var e imprimirlo, ¡funciona bien!

 Working using print function. $result = $sth->FetchAll(); print_r($result); 

He leído que otros tenían problemas similares y que se trataba de un problema de encoding UTF8, así que intenté hacer un utf8_encode en $ array antes de un json_encode pero con el mismo resultado de una página en blanco. ¿Alguien puede explicar esto?

json_encode es sensible a la encoding de caracteres. Fallará si no puede manejar la encoding. print_r no lo es. Felizmente imprimirá lo que le des.

La solución utf8_encode solo funcionará si las cadenas en sus datos de origen están codificadas como ISO-8859-1. Suponiendo que eso es cierto, debería funcionar. Asegúrese de hacerlo así … https://stackoverflow.com/a/2790107/111755