Maison > développement back-end > tutoriel php > Pourquoi ma déclaration préparée MySQLi renvoie-t-elle l'erreur « Le nombre de variables de liaison ne correspond pas au nombre de champs » ?

Pourquoi ma déclaration préparée MySQLi renvoie-t-elle l'erreur « Le nombre de variables de liaison ne correspond pas au nombre de champs » ?

Patricia Arquette
Libérer: 2024-12-15 21:30:26
original
241 Les gens l'ont consulté

Why Does My MySQLi Prepared Statement Throw a

Variables de liaison incompatibles dans l'instruction préparée MySQLi

Lorsqu'ils tentent d'implémenter un formulaire de connexion à l'aide d'une instruction préparée en PHP, certains développeurs rencontrent le problème frustrant erreur : "mysqli_stmt::bind_result() : le nombre de variables de liaison ne correspond pas au nombre de champs préparés déclaration."

Cette erreur se produit lorsque la requête SQL et la fonction bind_result() contiennent une incompatibilité dans le nombre de champs sélectionnés et attribués aux variables. Examinons comment résoudre ce problème en fonction du code fourni.

Dans le code fourni :

$stmt = $mysqli->prepare("SELECT username AND password FROM users WHERE username = ?");
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($password, $username);
Copier après la connexion

Le problème réside dans la requête SQL. Le mot-clé « AND » est utilisé à la place d'une virgule lors de la sélection de plusieurs champs. La syntaxe correcte pour sélectionner plusieurs champs est de les séparer par une virgule :

$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
Copier après la connexion

De plus, la fonction bind_result() doit correspondre au nombre de champs sélectionnés. Dans ce cas, deux champs sont sélectionnés, donc la fonction bind_result() doit avoir deux variables :

$stmt->bind_result($username, $password);
Copier après la connexion

En corrigeant la syntaxe de sélection et en alignant la fonction bind_result() avec le nombre de champs sélectionnés, le problème des variables de liaison incompatibles seront résolues, permettant au formulaire de connexion de fonctionner correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal