dongzhong7299
2018-11-13 04:57
浏览 220

使用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

    点赞 打赏 评论
  • dqnhfbc3738 2018-11-13 05:07

    http://php.net/manual/en/pdostatement.fetch.php

    say you can use this if you using pdo

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

    $sth is your query

    点赞 打赏 评论

相关推荐 更多相似问题