我不知道发生了什么,所以这里是代码
$q = "SELECT user_name, pass_word, email, id, auth_level FROM `userdata` WHERE user_name=?";
if ( $stmt = $db->prepare($q) ) {
$stmt->bind_param("s", $username);
$stmt->bind_result($result_username, $hash, $result_email, $userid, $result_auth);
$stmt->execute();
$stmt->store_result();
if ( $stmt->num_rows > 0 ) {
while ( $stmt->fetch() ) {
if ( password_verify($password, $hash) ) {
$_SESSION['is_user_logged_in'] = true;
$_SESSION['user_name'] = $result_username;
$_SESSION['user_email'] = $result_email;
$_SESSION['user_auth_level'] = $result_auth;
$_SESSION['user_id'] = $userid;
}
}
}
如果我echo $userid
我得到空白但我应该得到“1”,如果我直接从phpmyadmin运行这个完全相同的查询我得到“1”。有人有什么想法吗?
正在设置所有其他变量,我可以回应它们
答案 0 :(得分:0)
所以我只是将数据类型从INT更改为VARCHAR并且它可以工作。显然bind_result不喜欢整数?