Single quotes are used in SQL for string literals. This means that it is:
'$2'
is just a string containing the characters $ and 2 , not a placeholder. If you want to fill out, you need to leave a quote:
$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));
This gives you a placeholder, not a string literal.
mu is too short
source share