我试图将多个查询的值放在一个对象中,并将其返回到要显示的主脚本中。我对OOP的理解不是很好,但是从页面上获得的响应似乎是将对象放入对象中?对我确实正在做什么的解释将不胜感激,但这是我的代码:
<?php
require "../../inc/dbinfo.inc";
$num = $_POST['num'];
$sql = mysqli_query($conn, "SELECT COUNT(*) AS sq FROM tblVendorInvoices WHERE VendorPOID1 = '$num'");
$res->sq = mysqli_fetch_object($sql);
$sql = mysqli_query($conn, "SELECT POAmount AS poam FROM tblVendorPOs WHERE VENDORPOID = '$num'");
$res->poam = mysqli_fetch_object($sql);
echo json_encode($res);
exit();
?>
我得到的答复:
{"sq":{"sq":"0"},"poam":{"poam":"0.14"}}
预期的响应(按格式):
{"sq":"0","poam":"0.14"}
答案 0 :(得分:1)
您是正确的-您正在将对象放入对象。您得到的响应令人困惑,因为您有一个object属性,并且返回的列别名相同。
您有一个属性名称为“ sq”($res
)的$res->sq
对象,并且还将查询中的列名也设置为“ sq”(SELECT COUNT(*) AS sq...
)。
要获得所需的响应,只需将{column_name: value}
和{{1两者的对象属性设置为 column value 而不是整个对象sq
}}查询。例如:
poam
答案 1 :(得分:0)
只需更改:
//$res->sq = mysqli_fetch_object($sql);
$res->sq = mysqli_fetch_object($sql)->sq;
和
//$res->poam = mysqli_fetch_object($sql);
$res->poam = mysqli_fetch_object($sql)->poam;