php - Select query returning only 1 of 2 requested columns -
i'm 90% sure problem in sql syntax, can't seem spot exactly. sql returning right email, password returns empty. have tried using different column in database same problem.
note: password hashed in db.
code:
$sql = $link->prepare('select email, password users email=:email'); $sql->bindparam(':email', $email); $sql->execute(); $resultemail = $sql->fetchcolumn(); $resultpassword = $sql->fetchcolumn(1); if (!$resultemail){ echo "empty"; } else { echo $resultemail; } if (!$resultpassword){ echo "empty"; } else { echo "$resultpassword"; }
each time phone call fetchcolumn
, moves next row of result set, , fetches specified column row (the default column 0). you're setting $resultemail
first column of first row of results, , $resultpassword
first column of sec row of results. since query returns 1 row, you're setting $resultpassword
false
.
you should fetch whole row, , set variables corresponding columns of row.
$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"; }
php sql
No comments:
Post a Comment