dongzhong7299 2018-11-13 04:57
浏览 240
已采纳

使用php将sqlite数据转换为json

I'm trying to convert sqlite query into json. I have the following table with two columns name and age. When I print the query the format doesn't seem to be correct. why am I getting an extra key value pair?

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

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

    $jsonArray[] = $row;
}

echo json_encode($jsonArray)
?>

output

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

desired output

    [{"name":"billy","age":"20"}]
  • 写回答

2条回答 默认 最新

  • douhe4608 2018-11-13 05:13
    关注

    Change query to get only those column which are required:

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

    And then use SQLITE3_ASSOC

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

    Reference:- SQLite3Result::fetchArray

    Parameters

    mode

    Controls how the next row will be returned to the caller. This value must be one of either SQLITE3_ASSOC, SQLITE3_NUM, or SQLITE3_BOTH.

    SQLITE3_ASSOC: returns an array indexed by column name as returned in the corresponding result set

    SQLITE3_NUM: returns an array indexed by column number as returned in the corresponding result set, starting at column 0

    SQLITE3_BOTH: returns an array indexed by both column name and number as returned in the corresponding result set, starting at column 0

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料