Mysql 总和值-反总和等于零时的输出错误
通过下面的查询,我得到数据库中每个国家每年的销售额总和Mysql 总和值-反总和等于零时的输出错误,mysql,sum,prepared-statement,Mysql,Sum,Prepared Statement,通过下面的查询,我得到数据库中每个国家每年的销售额总和 $country_parameter = $_REQUEST['parameter']; $query = "SELECT YEAR(sl.year_sales) AS year, COALESCE(SUM(sl.value_sales),0) AS value FROM sales sl LEFT JOIN country co
$country_parameter = $_REQUEST['parameter'];
$query = "SELECT YEAR(sl.year_sales) AS year,
COALESCE(SUM(sl.value_sales),0) AS value
FROM sales sl LEFT JOIN country co
ON sl.id_country = co.id_country
WHERE parameter = ?
GROUP BY year
ORDER BY year";
if($statement = $conexao->prepare($query)){
$statement->bind_param("i", $country_parameter );
$statement->execute();
$result = $statement ->get_result();
while($data = $result->fetch_assoc()){
$output[] = $data;
}
echo json_encode($output);
$conexao->close();
问题:当没有销售额且总和等于零时,在客户端,输出仅返回null,并且我得到了未捕获的deerror TypeError:无法读取null的属性“metaData”
编辑:
如果输出值为:
[{"year":2017,"value":11600}]
如果不是,则输出仅为:
null
如果我直接查询数据库,结果是:
年份:
价值:
一年是否应该总是返回一个结果,并且值等于零
年份:2016年
value:0消除错误的最佳方法是检查country参数是否已设置,以便在声明$country\u参数后执行if语句,如下所示
$country_parameter = //value;
if (!isset($country_parameter)==0){
// do something
}
所以你是说如果1900年墨西哥没有销售;“您没有记录,这会引发错误吗?是的,是xQbert。我编辑了我的帖子。我选中了,$country_参数始终有一个对应于特定国家的数值。”。