Php Mysqli-使用select case,但未绑定其他数据

Php Mysqli-使用select case,但未绑定其他数据,php,sql,oop,mysqli,Php,Sql,Oop,Mysqli,我使用MySQLIOO使用MySQL语句案例在数据库中搜索2个特定值。如果两个值都找到,则返回值“true”;如果只找到一个值,则返回值“false”;如果两个值都没有找到,则结果都不是。无论如何,我已经让这个工作,但我的问题是,我需要它也显示列中相关的值 $query = "SELECT 'userName','email','code', CASE WHEN (email=? AND code=?) THEN 'true' WHEN (email=?) THEN 'fals

我使用MySQLIOO使用MySQL语句案例在数据库中搜索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方面有关,但我被卡住了,希望得到一些帮助。谢谢

您选择的是字符串文字,例如
'userName'
,而不是列中包含的值

要解决此问题,请删除列名周围的引号:

SELECT userName,email,code,...
或使用反勾号(允许,但仅当列名为a时才需要):


由于多种原因,您的代码永远无法返回
'none'
。我是说'true/false'作为术语,而不是bool表达式,而这两个表达式都是我想到的第一件事:天哪,我从来没有意识到我会这样做,这是一个花了我太长时间才弄明白的简单错误。非常感谢你指出这一点:D
SELECT `userName`,`email`,`code`,...