Maison > développement back-end > tutoriel php > Pourquoi ma fonction de mise à jour MySQLi renvoie-t-elle une erreur « Appel à une fonction membre bind_param() » ?

Pourquoi ma fonction de mise à jour MySQLi renvoie-t-elle une erreur « Appel à une fonction membre bind_param() » ?

Mary-Kate Olsen
Libérer: 2024-12-08 00:51:11
original
971 Les gens l'ont consulté

Why Does My MySQLi Update Function Throw a

La fonction de mise à jour de MySQLi renvoie l'erreur "Appel à une fonction membre bind_param()"

Problème

Lors de la tentative de mise à jour d'une table à l'aide de la fonction mysqli_update , l'erreur suivante est rencontrée : "Appel à une fonction membre bind_param() sur un non-objet."

Analyse

L'erreur indique que l'objet $stmt, qui est utilisé pour exécuter l'instruction préparée, n'a pas été correctement créé. Cela peut être dû à un problème avec la requête elle-même.

Solution

Pour résoudre ce problème :

1. Vérifiez la syntaxe de la requête

Assurez-vous que la syntaxe de la requête est correcte. La requête doit inclure le nom de la table, la clause SET, les paramètres à mettre à jour et la clause WHERE. Vérifiez les fautes de frappe ou les éléments manquants.

2. Vérifier les erreurs

Après avoir préparé l'instruction, utilisez les propriétés errno et error de l'objet mysqli pour vérifier s'il y a eu des erreurs lors de la préparation de l'instruction. Si errno n'est pas 0, convertissez le message d'erreur en utilisant mysqli_error() et déclenchez une erreur PHP en utilisant trigger_error() ou lancez une exception.

3. Confirmer l'exécution de l'instruction

Assurez-vous que l'instruction préparée est exécutée correctement à l'aide de mysqli_execute(). Recherchez les erreurs lors de l'exécution à l'aide de mysqli_errno() et mysqli_error() après l'exécution de l'instruction.

Voici un exemple de la façon de vérifier les erreurs lors de la préparation et de l'exécution de l'instruction :

if (!($stmt = $mysqli->prepare($query))) {
    trigger_error($mysqli->error . "[$query]");
}

if (!$stmt->execute()) {
    trigger_error($stmt->error . "[BIND PARAMS: $stmt->errno, EXECUTE: $mysqli->errno]");
}
Copier après la connexion

Par en suivant ces étapes, vous pouvez vous assurer que la requête est syntaxiquement correcte, identifier les erreurs lors de la préparation de l'instruction et confirmer l'exécution de l'instruction. Cela aidera à éviter l'erreur « Appel à une fonction membre bind_param() » lors de la mise à jour des données à l'aide de mysqli.

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