【问题标题】:Returning Mysqli in JSON Dict在 JSON 字典中返回 Mysqli
【发布时间】:2015-04-05 19:13:02
【问题描述】:

我正在从 mysql 数据库中检索数据,并希望将其作为 JSON 字典返回。

<?php
if($db->connect_errno > 0){
   die('Unable to connect to database [' . $db->connect_error . ']');
}

$sql = <<<SQL
SELECT tbldomainpricing.extension, tblpricing.msetupfee
FROM `tblpricing`
INNER JOIN tbldomainpricing ON tbldomainpricing.id = tblpricing.relid 
WHERE tblpricing.type = 'domainregister'
SQL;

if(!$result = $db->query($sql)){
    die('There was an error running the query [' . $db->error . ']');
}

$all_rows = array();

while($row = $result->fetch_assoc()) {
 $all_rows []= $row['extension'] . ":" . $row['msetupfee'];
}
header("Content-Type: application/json");
echo json_encode($all_rows);
?>

回报:

{"extension":".com","msetupfee":"6.99"},{"extension":".net","msetupfee":"6.99"},

我如何获得回报

{"com":"6.99"},{"net":"6.99"}

谢谢

【问题讨论】:

    标签: php mysql json mysqli


    【解决方案1】:

    听起来像你想要的:

    while($row = $result->fetch_assoc()) {
     $all_rows[$row['extension']] = $row['msetupfee'];
    }
    

    参考 u_mulder 的评论,你可能还想要这个:

    while($row = $result->fetch_assoc()) {
     $all_rows[][$row['extension']] = $row['msetupfee'];
    }
    

    【讨论】:

    • 这将是 [{"key1":"value1","key2":"value2"}] 但也许 OP 正是想要这个。
    • 我已经为精确输出添加了一个替代方案,尽管这可能不是最有效的格式
    【解决方案2】:

    我没有测试它,但可能你需要这样的东西:

    while($row = $result->fetch_assoc()) {
     $all_rows[] = array($row['extension'], $row['msetupfee']);
    }
    

    【讨论】:

      猜你喜欢
      • 2013-02-12
      • 2015-07-14
      • 1970-01-01
      • 2016-07-05
      • 2012-08-17
      • 2020-02-15
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      相关资源
      最近更新 更多