# pg_update

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

pg_update — Modifie les lignes d'une table

### Description

pg_update(
PgSql\Connection `$connection`,
string `$table_name`,
array `$values`,
array `$conditions`,
int `$flags` = `PGSQL_DML_EXEC`
): string|bool

pg_update() modifie les lignes de la table `table_name`, qui vérifient la condition `conditions` avec `values`.

Si `flags` est spécifié, pg_convert() est appliqué à `values` avec les drapeaux fournit.

Par défaut pg_update() 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.

### Liste de paramètres

`connection`

  Une instance PgSql\Connection.

`table_name`

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

`values`

  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.

`conditions`

  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.

`flags`

  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 `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 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 `flags`.

### Historique

Version | Description
--- | ---
8.1.0 | Le paramètre `connection` attend désormais une instance de PgSql\Connection ; auparavant, une resource était attendu.

### 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";
}
?>`

### Voir aussi

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