如何将查询的值放在对象中并将其返回到另一个脚本?

时间:2018-07-23 19:22:56

标签: php mysql json

我试图将多个查询的值放在一个对象中,并将其返回到要显示的主脚本中。我对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"}

2 个答案:

答案 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;