Sunday, 15 August 2010

php - Select query returning only 1 of 2 requested columns -



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