2013-11-15 75 views
0

以下代碼正在產生錯誤:Notice: Undefined variable: morrisonsbind_result()不綁定變量

我完全不知道爲什麼會出現這個錯誤,它似乎是與實際分配的變量的問題,因爲它只是沒有得到分配。

$sql = "SELECT name 
     FROM stds 
     INNER JOIN `users` 
     ON users.`id` = stds.`id` 
     WHERE users.`username` = ?"; 

if ($stmt = $db->prepare($sql)) { 
    $stmt->bind_param("s", $_POST['username']); 
    $stmt->execute(); 
    $stmt->bind_result($morrisons); 
    $stmt->fetch(); 
    $stmt->close(); 
} 

echo $morrisons; 
+0

我想你必須檢查價值$ morrisons。$ stmt-> bind_result($ morrisons); –

+1

'$ stmt'是否爲false? – Passerby

+0

檢查bind_result返回的內容!這一定是真的 –

回答

1
$stmt->bind_result($morrisons); 

這條線僅當此線

if ($stmt = $db->prepare($sql)) { 

產生true結果來執行。否則,整個塊將被跳過,並且$morrisons永遠不會被聲明。所以這條線

echo $morrisons; 

會產生一個錯誤。所以根本原因是$db->prepare返回false,這意味着查詢在某種方式是錯誤的或數據庫連接不見了。在這種情況下檢查錯誤。