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