Maison >développement back-end >tutoriel php >Comment résoudre l'inadéquation des numéros de paramètres de liaison dans les instructions préparées ?
Dans l'extrait de code que vous avez fourni, l'avertissement que vous avez rencontré provient d'une incompatibilité entre le nombre de variables dans votre méthode bind_param() et le nombre de paramètres dans votre instruction préparée. Pour résoudre ce problème, il est crucial de s'assurer que ces deux nombres s'alignent.
L'instruction préparée que vous avez initialement utilisée :
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = '?' ORDER by model");
contient une erreur. L'espace réservé pour le paramètre make est incorrectement placé entre guillemets ('?'). Dans les instructions préparées, les espaces réservés doivent être indiqués par des points d'interrogation sans guillemets.
L'instruction préparée corrigée :
$stmt = $mysqli->prepare(" SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model ");
a désormais deux espaces réservés, correspondant aux deux variables de votre méthode bind_param() :
$stmt->bind_param('is', $year, $make);
En éliminant les guillemets incorrects autour de l'espace réservé make, vous alignez le nombre de variables et de paramètres, résolvant ainsi l'erreur de non-concordance.
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!