Maison >développement back-end >tutoriel php >Pourquoi « bindParam » de PDO échoue-t-il avec les constantes et comment puis-je corriger l'erreur « Impossible de transmettre le paramètre 2 par référence » ?
Dépannage "Impossible de transmettre le paramètre 2 par référence" Erreur dans PDO bindParam avec constantes
Lorsqu'ils travaillent avec PDO, les développeurs peuvent rencontrer une erreur déroutante "Impossible de transmettre le paramètre 2 par référence." Cela se produit généralement lors de l'utilisation de bindParam avec des valeurs constantes.
Pour résoudre ce problème, il est crucial de passer de l'utilisation de bindParam à bindValue. bindParam prend une variable comme référence et interpole uniquement sa valeur lors de l'exécution de l'instruction. En revanche, bindValue évalue immédiatement la valeur fournie et l'incorpore dans l'instruction.
L'exemple suivant démontre l'utilisation correcte de bindValue :
$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)'); $stmt->bindValue(':v1', null, PDO::PARAM_INT);
Notez que la liaison d'une valeur constante comme null devrait être effectué en utilisant PDO::PARAM_INT ou un autre type PDO::PARAM approprié, plutôt que PDO::PARAM_NULL.
En suivant cet ajustement simple, les développeurs peuvent résoudre efficacement l'erreur « Impossible de transmettre le paramètre 2 par référence » et procéder à leurs opérations de base de données sans entrave.
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!