读取数据库行时输出重复


Duplicate output when reading in database rows

我想通过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,为什么?

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

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

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