Maison  >  Article  >  développement back-end  >  Comment résoudre les écarts entre les variables et les paramètres dans les instructions préparées ?

Comment résoudre les écarts entre les variables et les paramètres dans les instructions préparées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 12:19:03197parcourir

How to Resolve Discrepancy Between Variables and Parameters in Prepared Statements?

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!

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