如果有icon.envelop.2.gif
的消息,我试图显示message_status = 2
。但是由于某些不明原因,此查询返回0。
我在这里错过了什么?
$_SESSION['user_id']
有效,$access_level
也是如此。我已经检查了我的表格,我有一个输入正确的message_receive
号码,我也尝试使用message_to_stab = 5
,这是正确的数字。
这是我数据库中的信息:
message_id = 1
message_receive = 697
message_status = 2
message_to_stab = 5 or message_to_stab = NULL
这是我在会话和access_level中的信息:
access_level = 5
$_SESSION['user_id'] = 697
这是我的代码:
$sql = "SELECT message_id FROM private_messages WHERE message_status = 2 AND (message_receive = ? OR message_to_stab = ?)";
$stmt = $mysqli->prepare($sql) or die ("Database error: <br>" . $sql . "<br><b>Error message:</b> " . $mysqli->error);
$stmt->bind_param("ii", $_SESSION['user_id'], $access_level);
$stmt->execute() or die("Something went wrong");
if($stmt->num_rows != 0){
$html .= 'icon.envelope.2.gif';
}
else{
$html .= 'icon.envelope.gif';
}
$stmt->free_result();
$stmt->close();
这是问题,没有错误,我希望邮件符号与status
下的邮件符号类似。
答案 0 :(得分:0)
我设法使用$stmt->fetch()
来解决问题。我不得不将查询更改为LIMIT 1,以便在有多条未读消息可用时防止出现错误。
if($stmt->fetch()){
$html .= 'icon.envelope.2.gif';
}
else{
$html .= 'icon.envelope.gif';
}
PS:更好的答案非常受欢迎。我仍然不知道为什么rowCount()
或num_rows
无效。