Данные JSON не в правильном формате: выборка из MySQL - PullRequest
3 голосов
/ 03 апреля 2012
<?php
    require 'dbinfo.php'; 
    try {
        $db = new PDO($dsn, $username, $password);
        $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
        $sth = $db->query("SELECT * FROM user_tracks");
        $loc = $sth->fetchAll();    
        $locations = array_values($loc);
        echo json_encode( array("user"=>( $locations )));
    } catch (Exception $e) {
      echo $e->getMessage();
    }
?>

Код должен возвращаться:

{"user":[{"id":"1","Latitude":"12.9555033333","Longitude":"80.2461883333","Time":"06:32:57","Date":"2012-03-13","Speed":"0","Course":"183.92"},{...},{....}]}

когда он возвращается:

{"user":[{"id":"1","0":"1","Latitude":"12.9555033333","1":"12.9555033333","Longitude":"80.2461883333","2":"80.2461883333","Time":"06:32:57","3":"06:32:57","Date":"2012-03-13","4":"2012-03-13","Speed":"0","5":"0","Course":"183.92","6":"183.92"},{...},{....}]}

Я не уверен в том, что происходит ... В чем здесь проблема?

Заранее спасибо!

1 Ответ

8 голосов
/ 03 апреля 2012

fetchAll () возвращает строку (обратите внимание на аргумент / заметки аргумента 'fetch_style') и числовые данные из результатов запроса по умолчанию.Если вам нужна только строковая версия, вы должны сделать

$loc = $sth->fetchAll( PDO::FETCH_CLASS );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...