2014-09-05 45 views
-1

我想通过PHP访问sqlite3数据库,并将输出获取到json。在数据库行中读取时重复输出

<?php 

$db = new sqlite3('my.db') or die("Could not open database"); 

$sql = "SELECT * FROM teams"; 

$result = $db->query($sql); 
while($row = $result->fetcharray()) 
{ 
$output[]=$row; 
} 


$json = '{"team":'.json_encode($output).'}'; 
json_decode($json); 

echo $json; 

$db->close(); 
?> 

JSON输出:

{"0":16, 
"team_id":16, 
"1":"VfB Stuttgart", 
"team_name":"VfB Stuttgart", 
"2":"bl1", 
"league_shortcut":"bl1"} 

他把0,1,2的输出,为什么呢?

回答

1

fetcharray()默认返回一个双键数组:数字和字段名作为键。

如果你只想要一个或另一个,那么你必须这么说:

->fetcharray(SQLITE3_ASSOC); // string-keys only 
->fetcharray(SQLITE3_NUM); // numeric key only 
->fetcharray(SQLITE3_BOTH); // the default