我正在尝试将客户计费期内的天数发送回我的前端。我查询了这个数字,但想在其后附加" Days"
。到目前为止,我有:
<?php
require "../../inc/dbinfo.inc";
$projectnum =$_POST['projectnum'];
$sql = $conn->prepare("SELECT (SELECT TermsofPayment FROM tblCustomers WHERE CUSTOMERID = ProjectCustomer) AS NetTerms FROM tblProjects WHERE PROJECTNOID = ?");
if($sql){
$sql->bind_param("i", $projectnum);
$sql->execute();
$hold = $sql->get_result();
$obj = $hold->fetch_assoc();
$addOn = " Days";
$obj->NetTerms = $obj->{'NetTerms'. $addOn};
echo json_encode($obj);
}
$sql->close();
exit();
?>
经过反复试验,似乎倒数第二行对结果没有影响。我浏览了整个网络,没有找到任何解决方案(也许我的搜索中没有正确的关键字)。
当前响应:{"NetTerms":30}
所需响应:{"NetTerms":30 Days}
答案 0 :(得分:2)
您在那里/有两个问题:
首先,您想将一个变量连接到另一个变量,并且语法错误。
$addOn = " Days";
$obj->NetTerms = $obj->{'NetTerms' .$addOn};
// this would try to get a value of `$obj->NetTerms Days`, which doesn't exist.
应该是
$obj->NetTerms = $obj->NetTerms . $addOn;
// or
$obj->NetTerms .= $addOn;
所有这些都引发了错误,因为$obj
是一个数组(从fetch_assoc()
返回),而不是对象。
因此,将其视为一个数组,它应该可以工作:
$obj['NetTerms'] = $obj['NetTerms'] . $addon;