Mysqli OOを使用して、MySQLステートメントCASEを使用してデータベースで2つの特定の値を検索しています。両方の値が見つかった場合は、値「true」を返します。一方だけが見つかった場合、値は「false」です。どちらも見つからなかった場合、結果はどちらでもありません。とにかく私はこれを機能させていますが、私の問題は、列に関連する値も表示する必要があることです。
$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: local@localhost Code: 12 Answer: true
ただし、代わりに次のように表示されます。
User: userName Email: email Code: code Answer: true
したがって、エラーはSQL側に関係していると思いますが、行き詰まっていて、助けが必要です。ありがとう