我目前很難理解爲什麼我用PHP編寫的聲明無法正常工作。PHP MySQL準備好的聲明不起作用
的代碼是這樣的:
$stmt = $db->prepare('SELECT * FROM mail WHERE userID = ? AND opened = 0');
if($stmt)
{
$stmt->bind_param('s',$_SESSION['id']);
$stmt->execute();
$stmt->store_result();
$msgs = $stmt->num_rows;
$stmt->close();
}
if($msgs > 0)
{
$msgs = '<span style="color: yellow;">'.$result->num_rows.'</span>';
}
echo ' <a href="mail?id='.$_SESSION['id'].'"><img src="img/'.$mailico.'" alt="'.$mailstat.'" /> ('.$msgs.')</a>';
基本上,它應該檢查數據庫表「郵件」,並看看是否有任何PM的已發送到登錄的用戶還沒有已經打開,如果是,則顯示用戶在郵件圖標旁邊的括號中有多少新消息。
問題是,當我爲該用戶的表中有未打開的消息時,它不會使用消息的數量更新新的消息字段,並且是空白的(根本沒有數字)。
我使用mysqli_error($ db)檢查了mysql錯誤;但沒有回來。
我在想什麼,還是隻是恨我?
你在哪裏聲明$結果?我看到有$ msgs = $ stmt-> num_rows,然後檢查它的值,然後在if語句中聲明新值。徽標是否正確? BTW。我總是使用try ... catch來獲得例外 – Strabek