Jednoduché uvozovky se v SQL používají pro řetězcové literály. To znamená, že toto:
'$2'
je pouze řetězec, který obsahuje znaky $
a 2
spíše než zástupný symbol. Pokud chcete zástupný symbol, musíte vynechat uvozovky:
$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));
Tím získáte zástupný symbol spíše než řetězcový literál.