我使用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。 –