gpt4 book ai didi

php - mysqli num_rows 不返回正确的行数 - 检查所有值

转载 作者:行者123 更新时间:2023-11-30 22:42:24 28 4
gpt4 key购买 nike

如果有任何带有 message_status = 2 的消息,我会尝试显示 icon.envelop.2.gif。然而,出于某些不明原因,此查询返回 0。我在这里错过了什么?

$_SESSION['user_id'] 有效,$access_level 也有效。我已经检查了我的表格,我有 1 个输入具有正确的 message_receive 号码,我还尝试使用 message_to_stab = 5,这是正确的号码。

这是我数据库中的信息:

  • message_id = 1
  • message_receive = 697
  • message_status = 2
  • message_to_stab = 5 或 message_to_stab = NULL

这是我在 session 和 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 下的那样。

Image showing messaging error

最佳答案

我设法使用 $stmt->fetch() 解决了这个问题。我不得不将查询更改为 LIMIT 1,以防止在超过 1 条未读消息可用时出错。

if($stmt->fetch()){
$html .= 'icon.envelope.2.gif';
}
else{
$html .= 'icon.envelope.gif';
}

PS:更好的答案非常受欢迎。我仍然不知道为什么 rowCount()num_rows 不起作用。

关于php - mysqli num_rows 不返回正确的行数 - 检查所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30756166/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com