如果我的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
}]
如何? :)
答案 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连接时,语法变为:
$result = $db->query("SELECT * FROM data", PDO::FETCH_ASSOC);