(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_insert — Inserta un array en una tabla
$connection
,$table_name
,$values
,$flags
= PGSQL_DML_EXEC
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.
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.
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
.
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.
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.
|
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";
}
?>