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 ?

Comment résoudre l'inadéquation des numéros de paramètres de liaison dans les instructions préparées ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 11:02:29874parcourir

How to Resolve Binding Parameter Number Mismatch in Prepared Statements?

"bind_param Le nombre de variables ne correspond pas au nombre de paramètres dans l'instruction préparée"

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!

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