PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

pg_query_params restituisce un errore:il messaggio bind fornisce 2 parametri, ma l'istruzione preparata ne richiede 1

Le virgolette singole vengono utilizzate in SQL per le stringhe letterali. Ciò significa che questo:

'$2'

è solo una stringa che contiene i caratteri $ e 2 piuttosto che un segnaposto. Se vuoi un segnaposto, devi omettere le virgolette:

$Query = pg_query_params($db, '...password=(crypt($2,password))...', array(33,'thepassword'));

Questo ti dà il segnaposto anziché la stringa letterale.