pg_insert

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

pg_insert Inserta un array en una tabla

Descripción

pg_insert(
    PgSql\Connection $connection,
    string $table_name,
    array $values,
    int $flags = PGSQL_DML_EXEC
): PgSql\Result|string|bool

pg_insert() inserta los values en la tabla table_name.

Si flags está especificado, pg_convert() se aplica a values con los flags proporcionados.

Por omisión, pg_insert() pasa valores sin tratar. Los valores deben ser escapados o el flag PGSQL_DML_ESCAPE debe ser especificado en flags. PGSQL_DML_ESCAPE coloca comillas y escapa los parámetros/identificadores. Por consiguiente, los nombres de tabla/columnas se vuelven sensibles a mayúsculas y minúsculas.

Tenga en cuenta que ni el escape ni las consultas preparadas pueden proteger consultas LIKE, JSON, arrays, Regex, etc. Estos parámetros deben ser tratados de acuerdo con su contexto. Es decir, escapar/validar los valores.

Parámetros

connection

An PgSql\Connection instance.

table_name

Nombre de la tabla en la que se insertarán las filas. La tabla table_name debe tener al menos tantas columnas como elementos tenga values.

values

Un tableau cuyas claves son los nombres de los campos en la tabla table_name, y cuyos valores son los valores de esos campos que serán insertados.

flags

Cualquier combinación de constantes entre PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC o PGSQL_DML_STRING. Si PGSQL_DML_STRING forma parte del parámetro flags, entonces la consulta será retornada. Cuando la constante PGSQL_DML_NO_CONV o la constante PGSQL_DML_ESCAPE está definida, no se realizará ninguna llamada a la función pg_convert() internamente.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.. O retorna un chaîne de caractères si PGSQL_DML_STRING es proporcionado a través de flags.

Errores/Excepciones

Se lanza una ValueError cuando la tabla especificada es inválida.

Se lanza una ValueError o TypeError cuando el valor o el tipo del campo no coincide correctamente con un tipo PostgreSQL.

Historial de cambios

Versión Descripción
8.3.0 Ahora lanza un error ValueError cuando la tabla especificada es inválida; anteriormente, se emitía un E_WARNING.
8.3.0 Ahora lanza un error ValueError o TypeError cuando el valor o el tipo del campo no coincide correctamente con un tipo PostgreSQL; anteriormente, se emitía un E_WARNING.
8.1.0 Returns an PgSql\Result instance now; previously, a recurso was returned.
8.1.0 The connection parameter expects an PgSql\Connection instance now; previously, a recurso was expected.

Ejemplos

Ejemplo #1 Ejemplo con pg_insert()

<?php
$db
= pg_connect ('dbname=foo');
// Esto es seguro en cierta medida, ya que todos los valores son escapados
// Sin embargo, PostgreSQL soporta JSON/arrays. Estos no son
// seguros ni por escape ni por consultas preparadas.
$res = pg_insert($dbconn, 'post_log', $_POST, PGSQL_DML_ESCAPE);
if (
$res) {
echo
"Los datos POSTeados han podido ser registrados con éxito.\n";
} else {
echo
"Hay un problema con los datos.\n";
}
?>

Ver también

  • pg_convert() - Convierte valores de un array asociativo a una forma adecuada para consultas SQL