2012-04-03 3 views
3
<?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(); 
    } 
?> 

Код должен возвращать:JSON данные не в нужном формате: выборки из MySQL

{"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"},{...},{....}]} 

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

Заранее благодарен!

ответ

8

fetchAll() returns both (обратите внимание на комментарии и примечания аргумента «fetch_style») и данные с числовыми ключами из результатов запроса по умолчанию. Если вы хотите только версию строки, вы должны сделать

$loc = $sth->fetchAll(PDO::FETCH_CLASS); 
+1

Это работает! Его другим способом. FetchAll (PDO :: FETCH_CLASS); Спасибо за помощь! – Karthick

+0

Вордс, справа. опечатка с моей стороны. Я исправлю ответ. –

Смежные вопросы