PHP连接并获取所有行

$query = 'SELECT * FROM cdr';
$sql = $remotedbh->prepare($query);
$sql->execute();
$dblist = $sql->fetchAll(PDO::FETCH_ASSOC);

if($sql->rowCount() > 0){
    header('Content-type: application/json');
    echo json_encode($dblist,JSON_FORCE_OBJECT);
}
else {
    echo 0;
}

问题是我的json看起来像这样
{
"0": {
    "calldate": "2013-08-14 11:41:28",
    "clid": "\"tet\" <1002>",
    "src": "1002",
    "dst": "8834404",
    "dcontext": "from-internal",
    "channel": "SIP\/1002-00000000",
    "dstchannel": "IAX2\/voipms-6749",
    "lastapp": "Dial",
    "lastdata": "IAX2\/voipms\/14798834404,300,",
    "duration": "7",
    "billsec": "0",
    "disposition": "NO ANSWER",
    "amaflags": "3",
    "accountcode": "",
    "uniqueid": "1376498488.1",
    "userfield": "",
    "did": "",
    "recordingfile": "",
    "cnum": "",
    "cnam": "",
    "outbound_cnum": "",
    "outbound_cnam": "",
    "dst_cnam": ""
},
"1": {
    "calldate": "2013-08-14 11:42:55",
    "clid": "\"Rtest\" <1002>",
    "src": "1002",
    "dst": "9187755592",
    "dcontext": "from-internal",
    "channel": "SIP\/1002-00000001",
    "dstchannel": "IAX2\/voipms-121",
    "lastapp": "Dial",
    "lastdata": "IAX2\/voipms\/19187755592,300,",
    "duration": "494",
    "billsec": "485",
    "disposition": "ANSWERED",
    "amaflags": "3",
    "accountcode": "",
    "uniqueid": "1376498575.3",
    "userfield": "",
    "did": "",
    "recordingfile": "",
    "cnum": "",
    "cnam": "",
    "outbound_cnum": "",
    "outbound_cnam": "",
    "dst_cnam": ""
},
"2": {
       so on so forth

我还遇到这样的问题:每次将所有信息都拉成一行仅完成一半,因此它也有问题,我当时想寻找一种方法来查询5分钟或更早的所有内容。

最佳答案

使用JSON_FORCE_OBJECT时,其中包括行号

删除它,它将成功以数组形式返回。

例如

echo json_encode($dblist);

07-24 17:34