PHP bind_result没有绑定所有变量

时间:2014-03-18 02:22:28

标签: php

我不知道发生了什么,所以这里是代码

$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”。有人有什么想法吗?

正在设置所有其他变量,我可以回应它们

1 个答案:

答案 0 :(得分:0)

所以我只是将数据类型从INT更改为VARCHAR并且它可以工作。显然bind_result不喜欢整数?