PHP mysqli或stmt如何将查询值存储在PHP变量中,目前正在运行


PHP mysqli or stmt how to store query values in php variables now working

我正试图从查询中获取变量,并使用以下查询将其存储为cookie:

$query="SELECT id,username,password FROM employee where email='$email' AND password='$password' Limit 1";
$result= $mysqli->query($query);
if($result->num_rows == 1){
    $stmt = $mysqli->prepare($query);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($user_id, $username, $db_password);
    $user_browser = $_SERVER['HTTP_USER_AGENT'];
    $_SESSION['user_id'] = $user_id;
    //used echo to check stored variables
    echo "user_id=".$_SESSION['user_id'];
    //used echo here to check the query result
    $_SESSION['username'] = $username;
    echo "username=".$username;
    $_SESSION['login_string'] = hash('sha512', 
    $password . $user_browser);
        // Login successful.
        return true;
    }
     else{
        // Password is not correct
        // We record this attempt in the database
        $now = time();
        $mysqli->query("INSERT INTO login_attempts(user_id, time)
                        VALUES ('$user_id', '$now')");
        return false;
    }
}

我在网站上看到的是:user_id=0username=

这就是我解决问题的方法:

$quer="SELECT id,username FROM employee where email=?";
if($result->num_rows == 1){
$stmt = $mysqli->prepare($quer);
$stmt->bind_param('i',$email);
$stmt->execute();
$stmt->bind_result($user_id,$username);

添加:

while($stmt->fetch()) {}

用于:

echo "Cookies username:".$_SESSION['username']." ";
echo "db username".$username;

得到的结果:

Cookies username:test_user db usernametest_user

谢谢你们的帮助。