Maison > développement back-end > tutoriel php > Pourquoi `mysqli_stmt::bind_result()` génère-t-il une erreur lorsque le nombre de variables de liaison ne correspond pas aux colonnes de l'ensemble de résultats ?

Pourquoi `mysqli_stmt::bind_result()` génère-t-il une erreur lorsque le nombre de variables de liaison ne correspond pas aux colonnes de l'ensemble de résultats ?

Susan Sarandon
Libérer: 2024-12-11 09:01:09
original
208 Les gens l'ont consulté

Why Does `mysqli_stmt::bind_result()` Throw an Error When the Number of Bind Variables Doesn't Match the Result Set Columns?

Incompatibilité de variable de liaison dans mysqli_stmt::bind_result()

En PHP, lors de l'exécution d'une instruction préparée à l'aide de mysqli_stmt::bind_result(), le nombre de variables de liaison doit correspondre au nombre de champs dans le jeu de résultats. S'ils ne correspondent pas, 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" est renvoyée.

Pour résoudre ce problème, assurez-vous que le nombre des variables de liaison dans bind_result() s'aligne sur le nombre de colonnes renvoyées par la requête. Considérez le code PHP suivant :

$stmt = $mysqli->prepare("SELECT username, password FROM users WHERE username = ?");
$username = $_POST['name'];
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($password, $username); // Incorrect number of bind variables
$stmt->fetch();
Copier après la connexion

Dans cet exemple, l'instruction préparée récupère deux colonnes, nom d'utilisateur et mot de passe. Cependant, une seule variable de liaison, $username, est spécifiée dans bind_result(). Pour corriger cela, ajoutez la deuxième variable de liaison pour $password :

$stmt->bind_result($username, $password); // Correct number of bind variables
Copier après la connexion

La syntaxe des instructions SELECT est : SELECT field1, field2, ... fieldN FROM table_name WHERE .... Chaque champ doit être séparé par une virgule, pas une condition ET.

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