Le nombre de paramètres dans l'instruction préparée n'est pas cohérent avec le nombre de variables liées par bind_param
P粉578343994
2023-08-22 23:51:55
<p>Voici mon extrait de code : </p>
<pre class="brush:php;toolbar:false;">$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types
OÙ année = ? ET marque = '?' COMMANDER par modèle");
$stmt->bind_param('est', $année, $make);
$stmt->execute();</pre>
<p>Lorsque je génère les valeurs de $year et $make, je peux voir les valeurs, mais lorsque j'exécute ce script, j'obtiens une valeur nulle et l'avertissement suivant apparaît dans mon fichier journal : </ p> ;
<blockquote>
<p>Avertissement PHP : mysqli_stmt::bind_param() : le nombre de variables ne correspond pas au nombre de paramètres dans l'instruction préparée</p>
</blockquote>
<p>Dans ce cas, le type d'année dans la base de données est int(10), j'ai essayé de le convertir en type int pour le passage, et make est un varchar(20) avec l'encodage utf8_unicode_ci. Y a-t-il quelque chose qui me manque ? </p>
Votre déclaration préparée est fausse, elle devrait être :
Lorsque vous préparez une déclaration, vous devez remplacer chaque variable par un point d'interrogation au lieu de guillemets. Les points d'interrogation entre guillemets ne seront pas reconnus comme des espaces réservés.
Le nombre de points d'interrogation doit être égal au nombre de variables dans
bind_param()