Enstaka citattecken används i SQL för bokstavliga strängar. Det betyder att detta:
'$2'
är bara en sträng som innehåller tecknen $
och 2
snarare än en platshållare. Om du vill ha en platshållare måste du utelämna citattecken:
$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));
Det ger dig platshållaren snarare än strängen bokstavlig.