Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: ZAJDAN 19. 11. 2014, 11:36:13
-
pokouším se převést výsledek PHP PDOstatemnetu na json data, ale vrací se mi prázdné pole:
tímto získám pole/slovník
$result = $prepared->fetchAll(\PDO::FETCH_ASSOC);
prázdné určitě není (ověřeno)
a na převod do json jsem zkusil dva zápisy:
$result = $prepared->fetchAll(\PDO::FETCH_ASSOC);
$json = json_encode($result);
print_r($json);
vrací []
$json = json_encode($prepared->fetchAll(\PDO::FETCH_ASSOC));
print_r($json);
vrací []
-
Neni to kodovanim? json_encode() prijma AFAIK jen utf8.
-
omlouvám se vyřešeno, problém spočíval v tom, že jsem zanechal předchozí zápis:
//$result = $prepared->fetchAll(\PDO::FETCH_ASSOC);
$json = json_encode($prepared->fetchAll(\PDO::FETCH_ASSOC));
pokud ho smažu či zakomentuji je klid a převod na json je ok
-
je to ok, když výstup z json_encode je obalen do hranatých závorek? [ ]
na php.net se uvádí:
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
The above example will output:
{"a":1,"b":2,"c":3,"d":4,"e":5}
ovšem můj výstup je obalen do [ {"a":1,"b":2,"c":3,"d":4,"e":5} ]
-
zjistil jsem že, fetchAll() vždy vrací "2D array" a proto je to obalené do []
pokud tedy potřeba získat jako objekty použije se:
json_encode($result, JSON_FORCE_OBJECT));