SUM值 - de sum等于零时的输出错误

时间:2017-07-03 19:32:10

标签: 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
                       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 ,我得到de error 未捕获TypeError:无法读取属性'metaData 'of null

编辑:

如果值为输出:

[{"year":2017,"value":11600}]

如果不输出只是:

null

如果我直接查询数据库,结果是:

年:

值:

年份应该总是返回结果而值是否等于零?

年:2016年

值:0

1 个答案:

答案 0 :(得分:0)

摆脱错误的最佳方法是检查country参数是否已设置,因此在声明$ country_parameter后执行if语句

$country_parameter = //value;
if (!isset($country_parameter)==0){
// do something 
}