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