2013-08-16 45 views
2

我正在寫一個類,但我在一個函數中執行。它通過用戶名請求電子郵件地址,但它只返回null。PHP MySQLi bind_result null?

代碼:

private function getUserEmail($username){ 
    if($stmt = $this->_mysqli->prepare("SELECT email FROM users WHERE username='?'")){ 
     $stmt->bind_param("s", $username); 
     $stmt->execute(); 
     $stmt->bind_result($email); 
     $stmt->fetch(); 
     var_dump($email); 
     $stmt->close(); 
     return $email; 
    } 
} 
+1

您是否檢查查詢是否實際執行?實際上返回任何數據?你的代碼只是簡單的假設成功。 –

+0

@MarcB $ stmt-> execute()返回true。 – TMS

+0

我檢查瞭如果$ stmt-> fetch返回錯誤,但它返回null,所以我認爲問題是somwhere那裏。 – TMS

回答

1

嘗試刪除周圍的單引號?

if($stmt = $this->_mysqli->prepare("SELECT email FROM users WHERE username=?")){ 

否則它不會識別?作爲佔位符。

documentation on syntax here道:「字符不應引號括起來,即使你打算將它們綁定到字符串值?」。

+0

哇,感謝您的幫助。我刪除了這些問題,現在代碼正在工作。 – TMS