Maison > développement back-end > tutoriel php > Pourquoi `mysqli_stmt::bind_result()` échoue-t-il lorsque le nombre de variables de liaison ne correspond pas au nombre de champs sélectionnés ?

Pourquoi `mysqli_stmt::bind_result()` échoue-t-il lorsque le nombre de variables de liaison ne correspond pas au nombre de champs sélectionnés ?

Mary-Kate Olsen
Libérer: 2024-12-21 18:14:10
original
970 Les gens l'ont consulté

Why Does `mysqli_stmt::bind_result()` Fail When the Number of Bind Variables Doesn't Match the Number of Selected Fields?

Comprendre l'erreur dans mysqli_stmt::bind_result()

Lorsque vous travaillez avec des instructions préparées dans l'extension MySQLi de PHP, vous pouvez rencontrer l'erreur " mysqli_stmt::bind_result() : le nombre de variables de liaison ne correspond pas au nombre de champs dans l'instruction préparée." Ce problème se produit lorsque le nombre de variables attendues par votre requête ne correspond pas au nombre de variables liées au résultat.

Analyse du code fourni

Dans le code fourni , le problème venait de l'instruction SELECT utilisée pour préparer l'instruction :

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

Dans cette instruction, la clause SELECT spécifiait deux champs, "nom d'utilisateur" et "mot de passe." Cependant, une seule variable de liaison a été utilisée ($username) :

$stmt->bind_param('s', $username);
Copier après la connexion

Résolution du problème

Pour résoudre le problème, la clause SELECT doit être modifiée pour inclure uniquement les champs qui sont liés au résultat. Dans ce cas, seul "nom d'utilisateur" est nécessaire :

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

Avec cette modification, le nombre de champs dans la requête correspondra au nombre de variables de liaison et l'erreur sera résolue.

Notes supplémentaires

  • Lorsque vous utilisez plusieurs variables de liaison, assurez-vous qu'il y a le même nombre de variables de liaison qu'il y a de champs dans le Clause SELECT.
  • Vérifiez à nouveau que les types de données des variables de liaison correspondent aux champs correspondants.
  • Si vous rencontrez toujours l'erreur, essayez de vérifier l'instruction préparée en utilisant $stmt->error pour identifier tout problème potentiel de syntaxe ou de connexion.

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