SQlite3 $行中不需要的密钥

时间:2015-12-22 18:52:43

标签: php database sqlite

如果我的SQlite3表格中有一行称为“数据'看起来像这样:

Gorilla|10|Black

我用这个PHP得到它:

$returned = array();

$result = $db->query("SELECT * FROM data");

foreach($result as $row) {
    $returned[] = $row;
}

echo json_encode($returned);

在Array中生成的解析后的JS对象如下所示:

[{
  0: Gorilla,
  1: 10,
  2: Black,
  Age: 10,
  Animal: Gorilla,
  Color: Black
}]

为什么DB中有6个属性但只有3列?我想摆脱对象的前3个属性,只返回:

[{
  Age: 10,
  Animal: Gorilla,
  Color: Black
}]

如何? :)

1 个答案:

答案 0 :(得分:1)

这是SQLiteDatabase::query的默认行为。正如the documentation中所述:

  

可选的 result_type 参数接受一个常量,并确定如何索引返回的数组。使用SQLITE_ASSOC将仅返回关联索引(命名字段),而SQLITE_NUM将仅返回数字索引(序数字段编号)。 SQLITE_BOTH将返回关联和数字索引。 SQLITE_BOTH是此功能的默认设置。

所以写:

$result = $db->query("SELECT * FROM data", SQLITE_ASSOC);

编辑PDO

使用PDO连接时,语法变为:

$result = $db->query("SELECT * FROM data", PDO::FETCH_ASSOC);