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(); 
    } 
?> 

Der Code sollte zurück:JSON-Daten nicht in der richtigen Format: das Abrufen von mysql

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

, wenn es zurückkehrt:

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

Ich bin nicht sicher, was passiert ... Wo ist das Problem hier?

Vielen Dank im Voraus!

Antwort

8

fetchAll() returns both (beachten Sie die 'fetch_style' Argument Kommentare/Notizen) Zeichenfolge und numerisch eingegebene Daten aus den Abfrageergebnissen standardmäßig. Wenn Sie nur die String-Version möchten, müssen Sie

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

es funktioniert! Es ist der andere Weg .. fetchAll (PDO :: FETCH_CLASS); Danke für die Hilfe! – Karthick

+0

Woops, richtig. Tippfehler meinerseits. Ich werde die Antwort korrigieren. –