json_encode возвращает ноль с базой данных Postgres и php - PullRequest
1 голос
/ 27 июля 2011

Я имею в виду этот вопрос здесь, на stackoverflow , и у меня та же проблема, за исключением того, что я использую базу данных postgre и не могу заставить ее работать.

Это моя функция php, которая запрашивает базу данных:

public function getCashData($id, $date)
{
    if ($this->openConnection()){
        $query = "SELECT * FROM cash_register (". $id .", '". $date ."');";

        $result = pg_query($query);
        if (!$result){
                return false;
        }

        return pg_fetch_all($result);
    }
}

Я называю эту функцию следующим образом:

$cashReport = getCashReport($id, $date);

$cashReport = array_map('utf8_encode' , $casaReport); //**note: please read below
echo json_encode($casaReport);

** Это работало отлично, когда явозвращал только одну строку результата (и не все как сейчас), но теперь, когда я возвращаю массив строк, эта функция array_map (которую я нашел в вышеупомянутой ссылке) не работает, так как ожидает массив, а немассив массивов.

Можете ли вы, ребята, помочь мне решить эту проблему?

Ответы [ 3 ]

1 голос
/ 27 июля 2011

Попробуйте это:

function encode_items(&$item, $key)
{
    $item = utf8_encode($item);
}

array_walk_recursive($cashReport, 'encode_items');
0 голосов
/ 28 июля 2011

Я сделал это в конце, так как был вынужден «исправить» это как можно скорее:

$json = json_encode($cashReport);
$jsonEscapedNulls = str_replace('null', '""', $json);
echo $jsonEscapedNulls;

Теперь я понимаю, что «исправления» не являются решениями, но у меня не было другого выбора в предложениипериод времени :(. Поэтому, если кто-то даст ответ, который будет работать не как исправление, а как общее решение, я буду благодарен. До тех пор это будет необходимо сделать.

0 голосов
/ 27 июля 2011

Также возможно «сказать» серверу postgre отправлять данные в кодировке utf-8.
см http://docs.php.net/pg_set_client_encoding

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...