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 » ?

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 » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-20 14:29:16543parcourir

Why Does PDO's `bindParam` Fail with Constants, and How Can I Fix the

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!

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