Modifie les lignes d'une table

# pg_update

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

pg_update — Modifie les lignes d'une table

### Description

pg_update ( resource `$connection` , string `$table_name` , array `$data` , array `$condition` [, int `$options` = PGSQL_DML_EXEC ] ) : mixed

pg_update() modifie les lignes de la table `table_name`, qui vérifient la condition condition, et leur donne la valeur de data. Si options est spécifié, pg_convert() est appliqué à data avec les options spécifiées.

pg_update() met à jour les ligles fournit par assoc_array qui a field=>value.

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`

  Le nom de la table dans laquelle les lignes seront mises à jour.

`data`

  Un tableau dont les clés sont les noms des champs dans la table `table_name`, et où les valeurs sont les lignes correspondantes qui seront mises à jour.

`condition`

  Un tableau dont les clés sont les noms des champs dans la table `table_name`, et où les valeurs sont les conditions à remplir par les lignes pour être mises à jour.

`options`

  Toutes combinaisons de constantes parmi `PGSQL_CONV_FORCE_NULL`, `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 réalisé en interne.

### Valeurs de retour

Cette fonction retourne `TRUE` en cas de succès ou `FALSE` si une erreur survient. Retourne une chaîne de caractères si `PGSQL_DML_STRING` est passé via le paramètre `options`.

### Exemples

Exemple #1 Exemple avec pg_update()

`<?php
$db = pg_connect ('dbname=foo');
$data = array('field1'=>'AA', 'field2'=>'BB');
// 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_update($db, 'post_log', $_POST, $data);
if ($res) {
echo "Les données ont été modifiées : $res\n";
} else {
echo "Problème dans les données utilisateur\n";
}
?>`

### Historique

Version | Description
--- | ---
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