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

baptbaba
Invité n'ayant pas de compte PHPfrance

10 nov. 2019, 17:17

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

Mammouth du PHP | 1234 Messages

10 nov. 2019, 19:04

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 ".