Maison >développement back-end >tutoriel php >Pourquoi des variables et des paramètres incompatibles ont-ils provoqué une erreur dans les instructions préparées par mysqli ?
mysqli : "Le nombre de variables ne correspond pas au nombre de paramètres"
En réponse au problème rencontré lors de l'utilisation des instructions préparées par mysqli, la cause première réside dans la syntaxe incorrecte de l'instruction préparée. Comme mentionné dans la réponse, la correction suivante résout le problème :
$stmt = $mysqli->prepare( "SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model" ); $stmt->bind_param('is', $year, $make); $stmt->execute();
Lors de la préparation d'une déclaration, il est crucial de placer des espaces réservés pour les données d'entrée avec des points d'interrogation. Cependant, dans l'instruction originale, l'espace réservé pour la variable make était placé entre guillemets, ce qui le rendait méconnaissable en tant qu'espace réservé. Par conséquent, le nombre de points d'interrogation ne correspondait pas au nombre de variables dans bind_param().
Par conséquent, l'instruction préparée corrigée élimine cet écart en supprimant les guillemets autour du ? espace réservé, qui permet la liaison appropriée des variables d'entrée à l'aide de bind_param(). Cela garantit que l'instruction peut être exécutée avec succès, produisant les résultats souhaité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!