$new_id
ne contient pas l'identifiant mais c'est un descripteur de ressource. Vous devez en extraire les données car la requête serait un SELECT, avec pg_fetch_array($new_id)
par exemple.
Le RETURNING
clause de PostgreSQL projette tous les champs des lignes insérées ou modifiées, c'est-à-dire INSERT|UPDATE … RETURNING id, field1, field2
.