Page 1 sur 1

Erreur: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in

Posté : 10 nov. 2019, 17:17
par baptbaba
Bonjour, je suis en train de coder un formulaire d'inscription. J'essaye de faire un code pour éviter de pouvoir s'inscrire si le nom et le prénom sont déjà utilisés.
code :
<?php
if ($_POST['ins_password'] == $_POST['ins_password_conf']){
$stmt = $mysqli->prepare(' SELECT * FROM vfs_inscrits WHERE prenom="' .$_POST['ins_prenom']. '" and nom1= "' .$_POST['ins_nom']. '" ');
$stmt->bind_result();
$stmt->execute();
$stmt->store_result();

$possible = $stmt->num_rows();

if ($possible == 0 ){
$sql = 'INSERT INTO vfs_inscrits(prenom,nom1,nom2,mdp,avatar,mail)
VALUES ("'.$_POST['ins_prenom'].'", "'.$_POST['ins_nom'].'","", "'.$_POST['ins_password'].'","","")';
$res2=$mysqli->query($sql);
echo'<p id="ins_ok">Vous avez été inscrit</p>';
}
else{
echo'Vous êtes déjà inscrit';
}
}
else{
echo('Les mots de passe ne sont pas identitques');
}
?>

Quand j'ouvre ma page, j'ai l'erreur :

Warning: Wrong parameter count for mysqli_stmt::bind_result() in C:\Users\User\Documents\site\siteFamille\acces.php on line 74
J'ai cherché sur plusieurs forums et je n'ai trouvé aucunes solutions. Même quand je fais $stmt->bind_param('ss', $prenom, $nom1);
Merci d'avance

Re: Erreur: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in

Posté : 10 nov. 2019, 19:04
par or 1
https://www.php.net/manual/fr/mysqli-st ... result.php
cette fonction prend donc un paramètre.
$stmt->bind_result(); // aucun paramètre n'est passé d'où le warning

il faudrait portant utiliser correctement les paramètres, cela éviterait les failles de sécurité et problèmes de ' ou ".