Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens une erreur « Le nombre de variables de liaison ne correspond pas au nombre de champs » dans ma requête INSERT ?

Pourquoi est-ce que j'obtiens une erreur « Le nombre de variables de liaison ne correspond pas au nombre de champs » dans ma requête INSERT ?

Susan Sarandon
Libérer: 2024-10-28 09:41:29
original
1104 Les gens l'ont consulté

Why Am I Getting a

La requête INSERT soulève un problème : nombre de variables de liaison incompatibles avec l'instruction préparée

Dans votre code PHP, un message d'erreur indique une incompatibilité entre les nombre de variables et de champs de liaison dans une instruction préparée. Plus précisément, l'avertissement se lit comme suit :

"Avertissement : mysqli_stmt::bind_result() : le nombre de variables de liaison ne correspond pas au nombre de champs dans l'instruction préparée"

Cette erreur se produit dans le code suivant :

if($stmt = $conn -> prepare("INSERT INTO login(user, pass) VALUES(?, ?)")) {

  /* Bind parameters s - string, b - blob, i - int, etc */
  $stmt -> bind_param("ss", $user, $pw);

  /* Execute it */
  $stmt -> execute();

  /* Bind results */
  $stmt -> bind_result($user, $pw);

  /* Close statement */
  $stmt -> close();
  $userId = $conn->insert_id;
}
Copier après la connexion

Comprendre le problème

L'erreur provient de votre tentative de lier les variables de résultat ($user et $pw) à une instruction qui ne renvoie aucun résultats. Dans ce cas, la requête INSERT ne comporte pas de clause SELECT ni de procédure stockée renvoyant des valeurs. Par conséquent, la liaison des variables de résultat n'est pas nécessaire.

Résoudre le problème

Pour résoudre le problème, supprimez simplement la ligne qui lie les variables de résultat :

$stmt -> bind_result($user, $pw);
Copier après la connexion

En supprimant cette ligne, vous éliminez l'inadéquation entre le nombre de variables de liaison (0) et le nombre de champs dans l'instruction préparée (également 0). Cela devrait résoudre l'erreur et permettre à votre code de s'exécuter avec succès.

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