2 votes

Comment vérifier si des valeurs correctes sont transmises dans mysqli ?

J'essaie de compter les lignes retournées à partir d'une requête dans mysqli, je sais que j'ai fourni l'identifiant et le mot de passe corrects mais le nombre de lignes retournées est toujours égal à 0. J'ai même fait un écho de l'identifiant et du mot de passe haché que je lie à la requête, puis je l'ai fourni dans heidiSql, et j'ai obtenu une seule ligne en retour.

if($query = $db->prepare("SELECT user_id, pword_hash FROM tbl_users WHERE user_id=? AND pword_hash=?")){

            $query->bind_param("ss", $user_id, $hash);
            $query->execute();
            echo $query->num_rows;

            if($query->num_rows > 0){
                echo 1;
            }   

        }

2voto

thetaiko Points 5620

S'il vous plaît lire la documentation pour cette fonction ("propriété"). Le commentaire de cette page est également pertinent.

Vous devez utiliser $query->store_result(); pour mettre en mémoire tampon l'ensemble des résultats dans le gestionnaire de l'instruction afin que vous puissiez voir combien de lignes sont renvoyées.

Essayez ceci :

if($query = $db->prepare("SELECT user_id, pword_hash FROM tbl_users WHERE user_id=? AND pword_hash=?")){
    $query->bind_param("ss", $user_id, $hash);
    $query->execute();
    $query->store_result();
    echo $query->num_rows;
    if($query->num_rows > 0){
        echo 1;
    }   
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X