Le problème est dans $1 IS NULL
, où $1
est traité comme un nom de colonne dynamique, ce qui n'est pas autorisé dans les instructions préparées, en raison des protections contre l'injection SQL mises en œuvre par le serveur de base de données.
MISE À JOUR
Si vous souhaitez formater vos requêtes librement, tout en évitant le risque d'une injection SQL, consultez pg-promesse . Et pour formater correctement les noms de schéma, de table ou de colonne, voir Noms SQL .