Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que je reçois l'erreur « Le nombre de variables ne correspond pas au nombre de paramètres » dans MySQL avec des instructions préparées ?

Pourquoi est-ce que je reçois l'erreur « Le nombre de variables ne correspond pas au nombre de paramètres » dans MySQL avec des instructions préparées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 10:57:30717parcourir

Why Do I Receive

Question : Pourquoi est-ce que j'obtiens "bind_param : le nombre de variables ne correspond pas au nombre de paramètres" dans MySQL ?

Dans un script PHP utilisant MySQL, vous êtes confronté un problème lors de l'exécution d'une instruction préparée et de la réception de l'avertissement "Le nombre de variables ne correspond pas au nombre de paramètres dans l'instruction préparée." Cela peut se produire lorsque le nombre de points d'interrogation dans l'instruction préparée ne correspond pas au nombre de variables liées dans la méthode bind_param().

Solution :

Pour résoudre ce problème, assurez-vous que le nombre de points d'interrogation dans l'instruction préparée correspond au nombre de variables transmises à bind_param(). Voici un exemple d'extrait de code corrigé :

<code class="php">$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();</code>

Dans cet exemple, l'instruction préparée contient deux points d'interrogation et la méthode bind_param() lie deux variables, $year et $make. La première lettre de 'is' spécifie le type du premier paramètre (entier) et la deuxième lettre spécifie le type du deuxième paramètre (chaîne).

N'oubliez pas que lors de la préparation d'une instruction, vous devez remplacer chaque variable avec un point d'interrogation sans guillemets. Un point d'interrogation entre guillemets ne sera pas interprété comme un espace réservé.

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