Lors de l'utilisation d'instructions préparées avec des constantes, une erreur du type « Impossible de transmettre le paramètre 2 par référence » pourrait survenir. Contrairement à bindParam, qui fonctionne avec des références et n'extrait pas de valeurs lors de l'exécution de bindParam, bindValue est destiné à cet effet.
Le code problématique :
$stmt->bindParam(':v1', PDO::PARAM_NULL);
Pour résoudre ce problème, remplacez bindParam avec bindValue et fournissez une valeur constante comme argument.
$stmt->bindValue(':v1', null, PDO::PARAM_INT);
Veuillez noter que l'utilisation de PDO::PARAM_NULL dans bindValue pourrait ne pas fonctionner pour tout le monde. Utilisez plutôt PDO::PARAM_INT ou une constante appropriée qui correspond au type de données de la colonne.
De plus, lorsque vous utilisez bindValue, vous devez spécifier le type de données à l'aide du troisième argument. Cela garantit que la base de données gère correctement la valeur.
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!