# pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_query — Ejecutar una consulta

### Descripción

pg_query(resource `$connection` = ?, string `$query`): resource

pg_query() ejecuta la consulta dada por `query` en la conexión a la base de datos especificada por `connection`. En la mayoría de los casos, es preferible utilizar pg_query_params().

Si ocurre un error y se devuelve `false`, se pueden recuperara los detalles de este error con la función pg_last_error() si la conexión es válida.

> Nota: Aunque se puede omitir `connection`, no se recomienda debido a que puede ser difícil encontrar errores en scripts.

> Nota:

> Esta función se solía llamar pg_exec(). pg_exec() aún está disponible por compatibilidad, aunque se recomienda utilizar en nuevo nombre.

### Parámetros

`connection`

  Recurso de conexión a una base de datos de PostgreSQL. Cuando `connection` no está presente, se utilizará la conexión predeterminada. Esta es la última conexión realizada por pg_connect() o pg_pconnect().

`query`

  La sentencia o sentencias SQL a ejecutar. Cuando se pasan varias sentencias a la función, automáticamente se ejecutan como una sola transacción, a menos que haya comandos BEGIN/COMMIT explícitos incluidos en la cadena de consulta. Sin embargo, no se recomiendo el uso de varias transacciones en una llamada a la función.

  Advertencia

  La interpolación de datos proporcionados por el usuario es extremadamente peligrosa y probablemente lleve a vulnerabilidades de inyecciones SQL. En la mayoría de los casos es preferible el uso de pg_query_params(), pasando los valores proporcionados por el usuario como parámetros en lugar de sustituirlos en la cadena de consulta.

  Cualquier dato proporcionado por el usuario sustituido directamente en una cadena de consulta debe ser escapado adecuadamente.

### Valores devueltos

Un recurso de resultados de consulta en caso de éxtio o `false` en caso de error.

### Ejemplos

Ejemplo #1 Ejemplo de pg_query()

`<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Ocurrió un error.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "Ocurrió un error.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Author: $row[0] E-mail: $row[1]";
echo "<br />\n";
}
?>`

Ejemplo #2 Uso de pg_query() con varias sentencias

`<?php
$conn = pg_pconnect("dbname=publisher");
// estas sentencias se ejecutarán como una sola transacción
$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";
pg_query($conn, $query);
?>`

### Ver también

- pg_connect() - Abre una conexión a PostgreSQL
- pg_pconnect() - Abre una conexión persistente a PostgreSQL
- pg_fetch_array() - Fetch a row as an array
- pg_fetch_object() - Fetch a row as an object
- pg_num_rows() - Returns the number of rows in a result
- pg_affected_rows() - Devuelve el número de registros afectados (filas)