我想从MySQL
中选择具有where条件的数据。
我确定条件是错误的,这就是为什么它不应该返回任何数据或任何行,但它返回null。我用$stmt2->num_rows > 0
检查了这个条件是真的。
如何防止这种情况发生?
我的代码假设如何工作:这个条件第一次应该是false,并在插入一些数据后为true。
我认为是SUM()
用于select语句。 我该怎么做?
$q2="SELECT SUM(liked), SUM(disliked) FROM like_dislike WHERE post_id=?";
$stmt2 = $conn->prepare($q2);
$stmt2->bind_param('i', $post_id);
$stmt2->execute();
$stmt2->store_result();
$stmt2->bind_result($like_status, $dislike_status);
if ($stmt2->num_rows > 0 ) {
$stmt2->fetch();
}
else {
$like_status =0;
$dislike_status =0;
}
我的选择语句结果在phpmyadmin :
答案 0 :(得分:1)
SUM([DISTINCT] expr)
返回expr的总和。如果返回集没有行,则SUM()返回NULL。 DISTINCT关键字可用于仅对expr的不同值求和。
如果没有匹配的行,则SUM()返回NULL。
因此,如果没有数据,您将始终为NULL。