pg_insert

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

pg_insert Insère un tableau dans une table

Description

pg_insert ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] ) : mixed

pg_insert() insère les valeurs de assoc_array dans la table fournit par table_name. Si options est spécifiée, pg_convert() s'applique à assoc_array avec les options spécifiée.

Si options est fournit, pg_convert() est appliqué à assoc_array avec les drapeaux fournit.

Par défaut pg_delete() passe des valeurs brutes. Les valeurs doivent être échappé ou l'option PGSQL_DML_ESCAPE doit être fournit. PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/idantifiants. Par conséquent, les noms de table/colonnes doivent être 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.

Liste de paramètres

connection

Une ressource de connexion PostgreSQL.

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 assoc_array a d'éléments.

assoc_array

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.

options

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 options, 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.

Valeurs de retour

Retourne la ressource de connexion en cas de succès, ou FALSE si une erreur survient. Retourne une chaîne de caractères si PGSQL_DML_STRING est passé.

Exemples

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'$_POSTPG_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";
  }
?>

Historique

Version Description
5.6.0 À moins que PGSQL_DML_STRING est passé, la fonctione retourne désormais la ressource de connexion au lieux de TRUE en cas de succès.
5.6.0 La fonction n'est plus expérimentale. Ajout de la constante PGSQL_DML_ESCAPE ainsi que du support des données de type TRUE/FALSE et NULL.
5.5.3/5.4.19 Les injections SQL directes dans table_name et les injections SQL indirectes via les identifiants ont été résolues.

Voir aussi

  • pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL