PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

pg_query_params gibt Fehler zurück:Bind-Nachricht liefert 2 Parameter, aber die vorbereitete Anweisung erfordert 1

Einfache Anführungszeichen werden in SQL für Zeichenfolgenliterale verwendet. Das bedeutet, dass dies:

'$2'

ist nur ein String, der die Zeichen $ enthält und 2 eher als Platzhalter. Wenn Sie einen Platzhalter wünschen, müssen Sie die Anführungszeichen weglassen:

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

Das gibt Ihnen den Platzhalter anstelle des String-Literals.