Maison  >  Article  >  développement back-end  >  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
Susan Sarandonoriginal
2024-10-28 09:41:291056parcourir

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;
}

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);

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!

Déclaration:
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