我使用Mysqli OO使用MySQL語句CASE搜索數據庫中的2個特定值。如果找到兩個值,那麼它將返回值'真',如果只有一個被發現,該值是'假',如果都沒有找到,那麼結果就不是。無論如何,我有這個工作,但我的問題是我需要它也顯示列中相關的值。Mysqli - 使用select case但其他數據沒有綁定
$query = "SELECT 'userName','email','code',
CASE
WHEN (email=? AND code=?) THEN 'true'
WHEN (email=?) THEN 'false'
ELSE 'NONE'
END AS answer
FROM users WHERE email=?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ssss", $email,$code, $email,$email);
$email = $mysqli->real_escape_string($email);
$code = $mysqli->real_escape_string($code);
$stmt->execute();
$stmt->bind_result($user,$email,$code,$answer);
$stmt->fetch();
print_r($stmt->fetch);
$stmt->store_result();
echo "User: ".$user." Email: ".$email." Code: ".$code." Answer: ".$answer;
好了,所以當我運行的代碼,它應顯示爲:
User: ryan Email: [email protected] Code: 12 Answer: true
而是將其顯示爲:
User: userName Email: email Code: code Answer: true
所以,我認爲錯誤是更多的是與SQL的一面,但我卡住了,想要一些幫助。由於
您的代碼由於多種原因,永遠不會返回「既不」。 –
我的意思是'真/假'作爲術語而不是布爾表達式,而這兩個表達式都不是我頭上的第一件事情:S。 –