Php 选择仅返回2个请求列中的1个的查询

Php 选择仅返回2个请求列中的1个的查询,php,sql,Php,Sql,我90%确定问题出在sql语法中,但似乎无法确定具体位置。sql返回正确的电子邮件,但密码返回空。我曾尝试在数据库中使用不同的列,但遇到了相同的问题 注意:密码以db为单位进行散列 代码: 每次调用fetchColumn,它都会移动到结果集的下一行,并从该行中提取指定的列(默认为列0)。因此,将$resultmail设置为结果第一行的第一列,将$resultpassword设置为结果第二行的第一列。但是由于查询只返回一行,因此您将$resultpassword设置为false 您应该获取整行,并

我90%确定问题出在sql语法中,但似乎无法确定具体位置。sql返回正确的电子邮件,但密码返回空。我曾尝试在数据库中使用不同的列,但遇到了相同的问题

注意:密码以db为单位进行散列

代码:


每次调用
fetchColumn
,它都会移动到结果集的下一行,并从该行中提取指定的列(默认为列0)。因此,将
$resultmail
设置为结果第一行的第一列,将
$resultpassword
设置为结果第二行的第一列。但是由于查询只返回一行,因此您将
$resultpassword
设置为
false

您应该获取整行,并将变量设置为该行的相应列

$row = $sql->fetch(PDO::FETCH_ASSOC);
if ($row) {
    $resultemail = $row['email'];
    $resultpassword = $row['password'];
    if (!$resultemail){
        echo "empty";
    } else {
        echo $resultemail;
    }
    if (!$resultpassword){
        echo "empty";
    } else {
        echo "$resultpassword";
    }
} else {
    echo "empty";
}

我现在收到这个错误消息。调用未定义的方法PDOStatement::fetchAssoc()。明白了,只是用fetch(PDO::fetch_ASSOC)替换了fetchAssoc()。所以新手问题。这两种方法的区别在于fetchAssoc()是过程性的,fetch()是oop?是的,对不起。很难让所有不同的API保持一致。哈哈,今天你为我解决了第二个问题,我感谢你的帮助
$row = $sql->fetch(PDO::FETCH_ASSOC);
if ($row) {
    $resultemail = $row['email'];
    $resultpassword = $row['password'];
    if (!$resultemail){
        echo "empty";
    } else {
        echo $resultemail;
    }
    if (!$resultpassword){
        echo "empty";
    } else {
        echo "$resultpassword";
    }
} else {
    echo "empty";
}