Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi mysqli_stmt::bind_param() génère-t-il une erreur « Incompatibilité de chaîne de définition de type » ?

Linda Hamilton
Libérer: 2024-11-24 00:59:10
original
764 Les gens l'ont consulté

Why Does mysqli_stmt::bind_param() Throw a

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

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

  • Utiliser des virgules pour séparer les caractères dans la chaîne de définition de type
  • Compter mal le nombre d'espaces réservés dans la requête ou les variables utilisées dans la liaison

Considérations supplémentaires

  • La chaîne de définition de type ne doit contenir que des caractères qui correspondent aux types de données des variables liées.
  • Les définitions de type pour double, float et entier peuvent être différentes selon les serveurs de base de données. Reportez-vous à la documentation appropriée pour connaître les exigences spécifiques.

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.cn
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