Maison > base de données > tutoriel mysql > Pourquoi `mysqli_stmt::bind_result()` génère-t-il une erreur « Le nombre de variables de liaison ne correspond pas au nombre de champs » ?

Pourquoi `mysqli_stmt::bind_result()` génère-t-il une erreur « Le nombre de variables de liaison ne correspond pas au nombre de champs » ?

DDD
Libérer: 2024-12-17 20:11:10
original
340 Les gens l'ont consulté

Why Does `mysqli_stmt::bind_result()` Throw a

mysqli_stmt::bind_result() Erreur : correspondance des variables de liaison avec les champs d'instruction préparés

Lors de la tentative d'utilisation d'une instruction préparée pour un mécanisme de connexion en PHP, vous pouvez rencontrer l'erreur : "mysqli_stmt::bind_result() : le nombre de variables de liaison ne correspond pas nombre de champs dans la déclaration préparée." Cela indique un écart entre le nombre de variables que vous liez dans vos résultats et le nombre de champs attendus par l'instruction préparée.

Code et analyse incorrects :

Le le code fourni illustre le problème :

$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

L'erreur survient car le mot clé "AND" a été utilisé de manière incorrecte dans la clause SELECT. Au lieu de séparer les champs par « AND », vous devez utiliser une virgule.

Code correct et explication :

Pour résoudre cette erreur, modifiez la clause SELECT comme suit :

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

Avec cette modification, la déclaration préparée s'attend désormais à ce que deux champs soient renvoyés : le nom d'utilisateur et le mot de passe. Vous pouvez ensuite leur lier en toute sécurité deux variables à l'aide de mysqli_stmt::bind_result().

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

En vous assurant que le nombre de variables de liaison correspond au nombre de champs dans l'instruction préparée, vous pouvez empêcher le "Nombre des variables de liaison ne correspondent pas au nombre de champs dans l'erreur de l'instruction préparée.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal