Следующий код возвращает значение дважды, после кодирования в 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"}]
- Правильный способ получения данных POST JSON с Android на PHP
- Phonegap В запрошенном ресурсе присутствует заголовок «Access-Control-Allow-Origin». Происхождение 'null', следовательно, не допускает доступа
- Разбор значений из JSON с использованием php
- json_encode возвращает 200 и не определено
- Последовательный json_decode из-за ограничения памяти
Я читал на каком-то посту, я должен использовать 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
. Вам нужно будет посмотреть, как изменить режим выборки для того, что бы это ни было.