Maison > développement back-end > tutoriel php > Pourquoi « bindParam » échoue-t-il avec les constantes dans PDO et comment y remédier ?

Pourquoi « bindParam » échoue-t-il avec les constantes dans PDO et comment y remédier ?

Susan Sarandon
Libérer: 2024-11-23 07:55:19
original
929 Les gens l'ont consulté

Why Does `bindParam` Fail with Constants in PDO and How to Fix It?

Passer des constantes à bindParam : erreur et résolution

Dans PDO, la méthode bindParam permet de lier des variables aux paramètres d'instruction par référence. Cependant, lorsque vous tentez de lier des valeurs constantes telles que PDO::PARAM_NULL, l'erreur « Impossible de transmettre le paramètre 2 par référence » peut se produire.

Cause de l'erreur :

bindParam nécessite une variable comme deuxième argument, qu'il liera au paramètre par référence. Tenter de transmettre directement une valeur constante déclenchera l'erreur car les constantes ne peuvent pas être transmises par référence.

Solution :

Pour lier des valeurs constantes aux paramètres de l'instruction, utilisez bindValue méthode à la place. bindValue lie les variables par valeur, ce qui signifie qu'il copie la valeur au moment de l'appel de la méthode plutôt que de créer une référence.

Code modifié :

$stmt->bindValue(':v1', null, PDO::PARAM_NULL);
Copier après la connexion

En utilisant bindValue, vous pouvez lier correctement des valeurs constantes aux paramètres de l'instruction sans rencontrer l'erreur « Impossible de transmettre le paramètre 2 par référence ». N'oubliez pas d'utiliser PDO::PARAM_NULL pour les valeurs nulles, pas PDO::PARAM_INT ou ''.

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