使用php将sqlite数据转换为json
我正在尝试将sqlite查询转换为json。下表中有两列名称和年龄。当我打印查询时,格式似乎不正确。为什么我会得到一个额外的键值对使用php将sqlite数据转换为json,php,json,sqlite,Php,Json,Sqlite,我正在尝试将sqlite查询转换为json。下表中有两列名称和年龄。当我打印查询时,格式似乎不正确。为什么我会得到一个额外的键值对 <?php $db = new SQLite3('info.db'); $results = $db->query('SELECT * FROM info'); while ($row = $results->fetchArray()) { $jsonArray[] = $row; } echo json_encode($jsonAr
<?php
$db = new SQLite3('info.db');
$results = $db->query('SELECT * FROM info');
while ($row = $results->fetchArray()) {
$jsonArray[] = $row;
}
echo json_encode($jsonArray)
?>
期望输出
[{"name":"billy","age":"20"}]
如果你使用pdo,你可以使用这个
$result = $sth->fetch(PDO::FETCH_OBJ);
$sth是您的查询更改查询以仅获取所需的列:
$results = $db->query('SELECT name,age FROM info');
// if you want all column then only use *
然后使用SQLITE3_ASSOC
参考资料:-
参数
模式
控制如何将下一行返回给调用方。这
值必须是SQLITE3\u ASSOC、SQLITE3\u NUM或
SQLITE3_两者
SQLITE3_ASSOC:返回按中返回的列名索引的数组
相应的结果集
SQLITE3_NUM:返回按中返回的列编号索引的数组
相应的结果集,从第0列开始
SQLITE3_BOTH:返回一个按列名和编号索引的数组
在相应的结果集中返回,从第0列开始
举个例子:
<?php
$db = new SQLite3('info.db');
$results = $db->query('SELECT * FROM info');
$data = array();
while ($row = $results->fetchArray(SQLITE3_ASSOC)) {
array_push($data, $row);
}
echo json_encode($data);
?>
fetchArray同时获取关联和数值数组索引。它默认为SQLITE3_两者,使用SQLITE3_ASSOC或SQLITE3_NUM代替。cloud916检查并尝试下面给出的答案,让我们知道是否有任何一个适合您
while($row = $results->fetchArray(SQLITE3_ASSOC)){
<?php
$db = new SQLite3('info.db');
$results = $db->query('SELECT * FROM info');
$data = array();
while ($row = $results->fetchArray(SQLITE3_ASSOC)) {
array_push($data, $row);
}
echo json_encode($data);
?>