(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_insert — Insère un tableau dans une table
$connection,$table_name,$values,$flags = PGSQL_DML_EXEC
pg_insert() insère les values
dans la table table_name.
Si flags est spécifié,
pg_convert() est appliqué à
values avec les drapeaux fournit.
Par défaut pg_insert() passe des valeurs brutes.
Les valeurs doivent être échappé ou le drapeau PGSQL_DML_ESCAPE
doit être spécifié dans flags.
PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/identifiants.
Par conséquent, les noms de table/colonnes deviennent sensible à la casse.
Notez que ni l'échappement ni les requêtes préparer peuvent protéger des requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être traité en fonction de leur contexte. C'est à dire échapper/valider les valeurs.
connectionUne instance PgSql\Connection.
table_name
Nom de la table dans laquelle les lignes seront insérées. La table
table_name doit avoir au moins autant de colonnes
que values a d'éléments.
values
Un tableau dont les clés sont les noms des champs dans la table table_name,
et où les valeurs sont les valeurs de ces champs qui seront insérés.
flags
Toutes combinaisons de constantes parmi
PGSQL_CONV_OPTS,
PGSQL_DML_NO_CONV,
PGSQL_DML_ESCAPE,
PGSQL_DML_EXEC,
PGSQL_DML_ASYNC ou
PGSQL_DML_STRING. Si
PGSQL_DML_STRING fait partie du paramètre
flags, alors la requête sera retournée.
Lorsque la constante PGSQL_DML_NO_CONV ou la constante
PGSQL_DML_ESCAPE est définie, aucun appel à la fonction
pg_convert() ne sera effectuée en interne.
Cette fonction retourne true en cas de succès ou false si une erreur survient.. Ou retourne une chaîne de caractères si PGSQL_DML_STRING
est fournit via flags.
Une ValueError est déclenchée lorsque la table spécifiée est invalide.
Une ValueError ou TypeError est déclenchée lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL.
| Version | Description |
|---|---|
| 8.3.0 |
Lance désormais une erreur ValueError lorsque la table spécifiée est invalide ;
précédemment, un E_WARNING était émis.
|
| 8.3.0 |
Lance désormais une erreur ValueError ou TypeError
lorsque la valeur ou le type du champ ne correspond pas correctement à un type PostgreSQL ;
précédemment, un E_WARNING était émis.
|
| 8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une resource était retourné. |
| 8.1.0 |
Le paramètre connection attend désormais une instance de
PgSql\Connection ; auparavant, une resource était attendu.
|
Exemple #1 Exemple avec pg_insert()
<?php
$db = pg_connect ('dbname=foo');
// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$res = pg_insert($dbconn, 'post_log', $_POST, PGSQL_DML_ESCAPE);
if ($res) {
echo "Les données POSTées ont pu être enregistrées avec succès.\n";
} else {
echo "Il y a un problème avec les données.\n";
}
?>