2012-04-03 53 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 2012-04-03 04:02:38

+0

Woops,对。我的错字。我会纠正答案。 – 2012-04-03 04:52:10