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 ?

Pourquoi des variables et des paramètres incompatibles ont-ils provoqué une erreur dans les instructions préparées par mysqli ?

Barbara Streisand
Libérer: 2024-10-22 10:57:03
original
267 Les gens l'ont consulté

Why Did Mismatched Variables and Parameters Cause an Error in mysqli Prepared Statements?

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();
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal