Du har ikke givet nogen detaljer om sproget/miljøet, men jeg vil alligevel prøve et vildt gæt:
MySQL's forberedte udsagn bruger oprindeligt ? som parameterpladsholder, men PostgreSQL bruger $1 , $2 osv. Prøv at erstatte ? med $1 og se om det virker:
WHERE address = $1
Fejlmeddelelserne i PostgreSQL er meget kryptiske.
Generelt har jeg fundet ud af, at Postgres fejlmeddelelser er bedre end konkurrerende produkter (ahem, MySQL og især Oracle), men i dette tilfælde er det lykkedes dig at forvirre parseren ud over fornuft. :)