mysqli_stmt::bind_param() : incompatibilité de chaîne de définition de type
Lors de l'exécution d'instructions préparées à l'aide de mysqli_stmt::bind_param(), il est crucial que le nombre d'éléments dans la chaîne de définition de type correspond au nombre de variables de liaison. Cette incompatibilité conduit souvent au message d'erreur : "Le nombre d'éléments dans la chaîne de définition de type ne correspond pas au nombre de variables de liaison."
Énoncé du problème
La requête d'origine implique l'injection de 65 variables dans une base de données à l'aide d'instructions préparées. Cependant, il existe un écart entre le nombre de variables et le nombre de caractères « s » dans la chaîne de définition de type.
Résolution
Le nombre de caractères dans le La chaîne de définition de type ("s,s...") doit être égale au nombre de variables de liaison dans la requête. Dans ce cas, il y a 65 variables de liaison, donc la chaîne de définition de type doit contenir 65 caractères "s".
Exemple
// Prepare query $query3 = '... (65 bind variables here) ...'; // Prepare statement $stmt = $dbConnection->prepare($query3); // Bind parameters $stmt->bind_param( "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", // 65 variables listed here ); // Execute query $stmt->execute();
Dans cet exemple, le La chaîne de définition de type contient 65 caractères "s", correspondant au nombre de variables dans la requête.
Commun Pièges
Considérations supplémentaires
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!