Maison >développement back-end >tutoriel php >Comment résoudre les écarts entre les variables et les paramètres dans les instructions préparées ?
bind_param : écart entre les variables et les paramètres dans l'instruction préparée
Votre extrait de code rencontre une erreur : "Le nombre de variables ne correspond pas au nombre des paramètres dans la déclaration préparée. " Cela indique une inadéquation entre les variables de votre fonction bind_param() et les espaces réservés (?) dans votre instruction préparée.
Pour résoudre ce problème, assurez-vous que votre instruction préparée remplace avec précision toutes les variables par des points d'interrogation. Supprimez les guillemets autour des points d'interrogation, comme indiqué dans le code corrigé ci-dessous :
$stmt = $mysqli->prepare(" SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model "); $stmt->bind_param('is', $year, $make); $stmt->execute();
Le nombre de points d'interrogation doit toujours correspondre au nombre de variables transmises à bind_param(). Dans votre code d'origine, il y avait deux variables ($year, $make) mais un seul point d'interrogation dans l'instruction préparée, conduisant à l'erreur.
De plus, assurez-vous que les types de données des variables correspondent aux données. types de colonnes de la base de données. Par exemple, si la colonne année de la base de données est un entier, alors $year doit être converti en entier avant la liaison.
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!