Not new to PHP, but only a day old to PDO. Surely I am doing something wrong here.
$query = $conn->prepare("SELECT * FROM admins WHERE username = :username AND password = :password"); $query->execute(array('username' => $username,'password' => sha1($password))); $result = $query->fetchAll(PDO::FETCH_ASSOC); if (count($result) > 0) { $_SESSION['user']['who'] = $result[0]['who']; $_SESSION['user']['email'] = $result[0]['email']; $_SESSION['user']['username'] = $result[0]['username']; echo REFRESH; } else { $message = "Invalid username / password."; }
the only way I can declare those $_SESSIONS
properly is if I use $result[0]['fieldName'];
How can I just access it via $result['fieldName'];
?
Advertisement
Answer
fetchAll
, as the documentation says, retrieves an array of all fetch data simultaneously. Since you are using FETCH_ASSOC
, an array of associative arrays is fetched. If you know for certain that only one column is being returned or are only interested in the first column returned, just use fetch
. Otherwise you have to iterate over the fetchAll
results or do what you’ve done.