PHP和MySql的JSON输出
我想用Cpanel中的PHP和MySql为自己制作货币汇率api(like),以便在currency convertor ios应用程序中使用。我用我的sql做了一个表,有两列符号和价格。问题是如何像向上链接一样显示我的json 这是我在CPANEL中的php代码:PHP和MySql的JSON输出,php,mysql,json,api,Php,Mysql,Json,Api,我想用Cpanel中的PHP和MySql为自己制作货币汇率api(like),以便在currency convertor ios应用程序中使用。我用我的sql做了一个表,有两列符号和价格。问题是如何像向上链接一样显示我的json 这是我在CPANEL中的php代码: $query = "SELECT * FROM Currency "; $result = $connect->prepare($query); $result->execute(); $ou
$query = "SELECT * FROM Currency ";
$result = $connect->prepare($query);
$result->execute();
$out = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$record = array();
$record["sign"] = $row["sign"];
$record["price"] = $row["price"];
array_push($out, $record);
}
echo json_encode($out);
?>
我的php代码的json输出:
[{
sign: "USD",
price: "11298"
}, {
sign: "EURO",
price: "12650"
}, {
sign: "POND",
price: "14206"
}, {
sign: "CAD",
price: "8549"
}, {
sign: "EMIRD",
price: "37445"
}, {
sign: "TULY",
price: "2900"
}]
我想这样显示JSON输出:以不同的方式构建阵列:
$myoutput = [ "rates" => [] ];
foreach ($rows as $rows)
{
$myoutput["rates"][$row["sign"]] = $row["price"];
}
return json_encode($myoutput, JSON_PRETTY_PRINT);
您可以尝试以下方法:
$query = "SELECT * FROM Currency";
$result = $connect->prepare($query);
$result->execute();
$out = new stdClass();
$out->date = date('Y-m-d');
$out->base = "USD";
$rates = new stdClass();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$rates->{$row["sign"]} = $row["price"];
}
$out->rates = $rates;
echo json_encode($out);
请注意:我尽可能地坚持你的例子,这样会更容易理解。然而,尽管上面的代码可以工作,但这样编写并不是一个好的实践。您应该为DB实体创建类,并避免使用std类。这里还可以进行更多的重构,但这不在本问题的范围之内。
祝你好运:)简单就是这样,
Pdo fetcAll方法和php函数json_encode
$query = "SELECT * FROM Currency ";
$result = $connect->prepare($query);
$result->execute();
$rows= $result->fetchAll(PDO::FETCH_ASSOC));
echo json_encode($rows);
如果需要对象映射器,例如创建属性分配dbColumnName
class CurrencyClass {
public $property;
function __constructor()
{
$this->property=$this->dbColumName;
}
}
$stmt = $pdo->query('SELECT * FROM Currency');
$stmt->setFetchMode(PDO::FETCH_CLASS, 'CurrencyClass');
$data= $stmt->fetchAll();
echo json_encode($data);
定义“我想像这样显示JSON输出”。你能给我们看一下你的输入样本的预期输出吗?没错。还有,一旦你有了这个,我建议你在一个助手函数中创建这个while块,因为你最终会一直需要它-获取一个结果集是很常见的事情,其中一个字段作为key,另一个字段作为value.tnx作为你的答案
class CurrencyClass {
public $property;
function __constructor()
{
$this->property=$this->dbColumName;
}
}
$stmt = $pdo->query('SELECT * FROM Currency');
$stmt->setFetchMode(PDO::FETCH_CLASS, 'CurrencyClass');
$data= $stmt->fetchAll();
echo json_encode($data);