我正在尝试为登录我网站的用户检索正确的user_id
...
$result = $conn->prepare("SELECT * FROM users WHERE email_address= :em AND password= :pw");
$result->bindParam(':em', $user);
$result->bindParam(':pw', $password);
$result->execute();
$rows = $result->fetch(PDO::FETCH_NUM);
if($rows > 0) {
$_SESSION['loggedin'] = 1;
$_SESSION['uid'] = $rows['user_id'];
}
我希望获得相关的user_id,并尝试使用$rows['user_id'];
尝试这样做,但没有运气......
答案 0 :(得分:2)
您应该使用PDO::FETCH_ASSOC
代替PDO::FETCH_NUM
如果没有更多结果,fetch
会返回false,所以你应该这样做:
$result->execute();
if ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$_SESSION['loggedin'] = 1;
$_SESSION['uid'] = $rows['user_id'];
}