(PHP 4 >= 4.3.0, PHP 5, PHP 7)
pg_update — Modifie les lignes d'une table
$connection
, string $table_name
, array $data
, array $condition
[, int $options
= PGSQL_DML_EXEC
] )
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.
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.
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
.
Exemple #1 Exemple avec pg_update()
<?php
$db = pg_connect ('dbname=foo');
$data = array('field1'=>'AA', 'field2'=>'BB');
// C'est sécuritaire, car $_POST est converti automatiquement
$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";
}
?>
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.
|