Maison > développement back-end > tutoriel php > Pourquoi `mysqli_stmt::bind_result()` génère-t-il une erreur « Incompatibilité de liaison » dans les formulaires de connexion PHP ?

Pourquoi `mysqli_stmt::bind_result()` génère-t-il une erreur « Incompatibilité de liaison » dans les formulaires de connexion PHP ?

Barbara Streisand
Libérer: 2024-12-24 03:49:27
original
411 Les gens l'ont consulté

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

Erreur Mysqli_stmt::bind_result() : incompatibilité de liaison

Lors de la tentative d'implémentation d'un formulaire de connexion PHP à l'aide d'une instruction préparée, les utilisateurs peuvent rencontrer l'erreur suivante :

mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement
Copier après la connexion

Cette erreur indique un écart entre le nombre de variables spécifié dans bind_result() et le nombre de champs renvoyés par l'instruction préparée. Pour résoudre ce problème, examinez l'extrait de code suivant :

$mysqli = new mysqli("localhost", "root", "", "security");

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

Cause première :

La syntaxe incorrecte dans l'instruction SELECT est la cause première de l'erreur. La syntaxe correcte doit être :

SELECT username, password FROM users WHERE username = ?
Copier après la connexion

Résolution :

Le problème peut être résolu en séparant les champs de l'instruction SELECT par une virgule au lieu de "AND. " Le code correct est fourni ci-dessous :

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

En garantissant la syntaxe correcte dans l'instruction SELECT et en observant que le nombre de variables de liaison correspond au nombre de champs dans l'instruction préparée, l'erreur mysqli_stmt::bind_result() peut être évité.

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