Cómo recibir la respuesta de postgres sin formato en php

Cómo recibir la respuesta de postgres sin formato en php

Tengo una consulta:

pg_query("
INSERT INTO all_types (type) VALUES('something1')
RETURNING id;
");

¿Cómo puedo recibir la respuesta de postgres sea lo que sea? En este caso, quiero recibir la última identificación. Una vez que realizo esta consulta en Adminer, obtengo la respuesta con id, pero no sé cómo ingresar en el código PHP.

Mostrar la mejor respuesta

¿Qué has probado antes de preguntar SO?

Si tan solo hubiera documentación para pg_query, como www.php.net/pg_query, y si SOLO tuviera ejemplos de copiar y pegar sobre cómo usarlo... si tan solo.

como veo en la documentación. pg_query solo puede mostrar errores o resultados con filas, pero al insertar no necesito ninguna respuesta de filas.

@ThisGuyHasTwoThumbs Traté de hacer echo y var_dump para esta función. Echo da la ID de recurso #4. Soy nuevo en las consultas sql sin procesar que escriben para postgres, así que no estoy seguro de qué comandos usar

Intenta pg_fetch_result. Será algo como:

$resource = pg_query($connection, "INSERT INTO all_types (type) VALUES('something1') RETURNING id;");
$result = pg_fetch_result($resource);

Además, pg_query toma 2 parámetros: primero es la conexión a su base de datos, que no está presente en su ejemplo.

¿Cómo hacer eco de $resultados variables? no consigo nada :(

intente no usar echo o print_r para mostrar variables (para depuración); no muestra nada para los valores null o false. Use var_dump en su lugar; además, le muestra el tipo de variable. Edité mi respuesta. No vi que no hay un parámetro $connection para la función pg_query; puede ser el problema principal.

Agregué la conexión. Query inserta una nueva fila, pero aun así obtengo una respuesta NULL, incluso con var_dump

Intente pegar su consulta en algún cliente (pg_admin o algo así), ¿devuelve el valor esperado? Quizás el problema esté en otro lado.

Sí, ha devuelto el número id

Según la documentación, pg_fetch_result devolverá null si la base de datos devuelve null y devolverá false en caso de errores. Puede intentar depurar adicionalmente con $state = pg_result_status($resource);.