Intereting Posts
PHPUnit тестовый и абстрактный класс с помощью метода «Метод» Как извлечь значение из объекта json с помощью javascript Создание разбивки на страницы в структуре yii Динамический класс с именами с псевдонимом PHP: исключения против ошибок? Как определить размер памяти (размер) переменной? Запутывание тайм-аута PHP / AJAX через 900 секунд (15 минут) Как избежать символов при передаче системной команды в PHP Правильный способ открытия и закрытия запросов mysqli Как я могу получить строку между двумя символами ? PHP Получить высоту и ширину изображения как целочисленные значения? получение высоты и ширины изображения из zip-файлов Удаление всех символов перед определенной строкой Как я могу сделать кнопку отправки формы также перенаправлять на конкретный div на странице? Создание потоковой частной системы обмена сообщениями, такой как facebook и gmail

Значение JSON кодируется дважды: как использовать fetch_assoc ()?

Следующий код возвращает значение дважды, после кодирования в JSON:

<?php $req = $bdd->prepare('SELECT Date, Open, Close FROM quotes WHERE Symbol = ? AND Date > ? AND Date < ?'); $req->execute(array($_GET['id'], $_GET['datemin'], $_GET['datemax'])); $test=array(); while ($donnees = $req->fetch()) { $test[] = $donnees; } echo json_encode($test); ?> 

[{ "Дата": "2012-02-29", "0": "2012-02-29", "Открыть": "88,14", "1": "88,14", "Закрыть": "87,60", "2": "87.60"}, { "Дата": "2012-02-28", "0": "2012-02-28", "Открыть": "87.83", "1": "87.83", "Закрыть": "87,77", "2": "87,77"}, { "Дата": "2012-02-27", "0": "2012-02-27", "Открыть": "87.41", "1": "87.41", "Закрыть": "88.07", "2": "88.07"}]

Я читал на каком-то посту, я должен использовать fetch_assoc() вместо fetch_array() .

Но следующий код ничего не возвращает: while ($donnees = $req->fetch_assoc()) . И это не так: while ($donnees = $req->fetch_array()) .
Я не понимаю, что случилось.

См. Руководство.
http://www.php.net/manual/en/pdostatement.fetch.php

Ты должен попытаться:

 $req->fetch(PDO::FETCH_ASSOC) 

Я не знаю, что такое req , но я предполагаю, что это объект PDOStatement , который имеет fetchAll методы fetch и fetchAll (без fetch_assoc или fetch_array ).

Вы можете изменить стиль выборки PDO с первым аргументом для fetch . По умолчанию используется PDO::FETCH_BOTH (что похоже на mysql_fetch_array ). Вы можете установить его в PDO::FETCH_ASSOC , который похож на mysql_fetch_assoc если хотите.

 $req->fetch(PDO::FETCH_ASSOC); //global setting $bdd->setFetchMode(PDO::FETCH_ASSOC); 

Если это не PDOStatement , то все, что у него есть, не имеет fetch_assoc или fetch_array . Вам нужно будет посмотреть, как изменить режим выборки для того, что бы это ни было.