Impossible de fetch_assoc () de la déclaration préparée en PHP, Si Fetch est utilisé num_rows devient zéro

voix
0
public function Login($username, $pass){
    if(!empty($username) && !empty($pass)){
        $user = $this->link->prepare(SELECT username, pass FROM users WHERE username=? AND pass=?);
        $user->bind_param(ss, $username, $pass);
        $user->execute();

        $row=$user->fetch_assoc();

        If($user->num_rows==1){         
            session_start();
            $_SESSION['name']=$row['username'];
            $_SESSION['name']=true;
            header(Location: admin.php);                  
        }else{
            echo Invalid Username and Password;   
        }   

    }else{
        echo Empty Login Details;
    }
}

Le test pour num_row = 0parce que le résultat est maintenant associé tableau, quand je Fetch()l' num_rowsétait correcte à 1, mais je ne peux pas accéder au tableau d'assigner $row['username']à une variable de session.

Créé 18/12/2018 à 11:15
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Votre première question est vous ne recevez pas le résultat, je veux dire que vous êtes absent mysqli_stmt :: get_result .

Votre code est censé être

$user->bind_param("ss", $username, $pass);
$user->execute();
$result = $user->get_result();

if($result->num_rows === 1){
    $row = $result->fetch_assoc()
    $_SESSION['name']=$row['username'];
    header("Location: admin.php");
}else{
    echo "Invalid Username and Password";   
}  

Pourquoi aller chercher si aucune ligne ne sont renvoyés droit?

Et vous surchargez la session ici

$_SESSION['name']=$row['username'];
$_SESSION['name']=true;

La dernière session $_SESSION['name']est Outrepasser la première.

Créé 18/12/2018 à 11:19
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more