我有一个访问数据库的功能,以根据收件人UserID获取邮件。
function GetUnreadMessages($recipientID, $db) {
$sql = 'SELECT
senderID AND headline AND message
FROM
Message
WHERE
recipientID = ? AND unread = 1
LIMIT 100';
$stmt = $db->prepare($sql);
if ($stmt) {
$stmt->bind_param('i', $recipientID);
$stmt->execute();
return $stmt->get_result();
}
else {
http_redirect("", array(
section => "info",
message => "Internal error while recieving messages!"
));
}
}
然后我称之为。 $messageCount
是2应该是因为我的testuser有两条消息。
$messages = GetUnreadMessages($userID, $db);
$messageCount = $messages->num_rows; // 2
但是当我称之为$messages
总是为0时。任何想法为什么?
$message = $messages->fetch_array(MYSQL_ASSOC); // 0
答案 0 :(得分:2)
您将字段与,
而不是AND
分开。
SELECT senderID, headline, message
答案 1 :(得分:2)
这为您提供了值的逻辑AND作为一个结果:
select senderID AND headline AND message
你想要这个:
select senderID, headline, message