使用php将sqlite数据转换为json

z31licg0  于 2023-06-25  发布在  PHP
关注(0)|答案(4)|浏览(131)

我正在尝试将sqlite query转换为json。我有两个列名称和年龄下表。当我打印查询时,格式似乎不正确。为什么我会得到一个额外的键值对?

<?php
$db = new SQLite3('info.db');

$results = $db->query('SELECT * FROM info');
while ($row = $results->fetchArray()) {

    $jsonArray[] = $row;
}

echo json_encode($jsonArray)
?>

输出

[{"0":"billy","name":"billy","1":"20","age":"20"}]

期望输出

[{"name":"billy","age":"20"}]
mwyxok5s

mwyxok5s1#

下面是一个例子:

<?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);
?>
dldeef67

dldeef672#

更改查询以仅获取那些必需的列:

$results = $db->query('SELECT name,age FROM info'); 
// if you want all column then only use *

然后使用SQLITE3_ASSOC

while($row = $results->fetchArray(SQLITE3_ASSOC)){

参考:-SQLite3Result::fetchArray
参数***

模式

控制如何将下一行返回给调用方。此值必须是SQLITE3_ASSOC、SQLITE3_NUM或SQLITE3_BOTH之一。

SQLITE3_ASSOC:返回一个数组,该数组按相应结果集中返回的列名索引
SQLITE3_NUM:返回按相应结果集中返回的列号索引的数组,从第0列开始
SQLITE3_BOTH:从列0开始,返回一个数组,该数组由相应结果集中返回的列名和编号索引

2w2cym1i

2w2cym1i3#

比那些都简单

<?php
  $db = new SQLite3('info.db');
  $result = $db->query('SELECT * FROM info');
  $rows->fetchArray(SQLITE3_ASSOC);
  echo json_encode($rows);
?>
8tntrjer

8tntrjer4#

http://php.net/manual/en/pdostatement.fetch.php
说你可以使用这个如果你使用pdo

$result = $sth->fetch(PDO::FETCH_OBJ);

$sth是您的查询

相关问题