Maison  >  Article  >  développement back-end  >  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 » ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-19 05:39:02317parcourir

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

Lorsque vous tentez d'exécuter une instruction préparée à l'aide de la méthode bindParam de PDO, vous peut rencontrer une erreur si vous utilisez une valeur constante comme paramètre à lier. Cette erreur provient d'une incompréhension fondamentale du fonctionnement de bindParam.

bindParam attend une variable comme deuxième paramètre, vous permettant de modifier ultérieurement la valeur transmise à l'instruction. Ceci ne convient pas aux valeurs constantes, qui ne peuvent pas être modifiées. Pour résoudre ce problème, utilisez plutôt la méthode bindValue.

Exemple :

Remplacez :

$stmt->bindParam(':v1', PDO::PARAM_NULL); 

Par :

$stmt->bindValue(':v1', null, PDO::PARAM_INT); 

En utilisant bindValue, vous fournissez explicitement une valeur spécifique à l'espace réservé, éliminant ainsi le besoin d'une référence. Cela résout l'erreur et permet à votre instruction de s'exécuter correctement.

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