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
Susan Sarandonoriginal
2024-11-23 07:55:19914parcourir

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);

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!

Déclaration:
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