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().
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!