pg_update
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
pg_update —
Modifie les lignes d'une table
Description
Si flags est spécifié,
pg_convert() est appliqué à
values avec les drapeaux fournis.
Par défaut pg_update() passe des valeurs brutes.
Les valeurs doivent être échappées 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 sensibles à la casse.
Il est à noter que ni l'échappement ni les requêtes préparées peuvent protéger des
requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être
traités en fonction de leur contexte. C'est-à-dire échapper/valider les valeurs.
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 PostgreSQL supporte les JSON/Tableaux. Ceux-ci ne sont pas
// sûrs ni par échappement ni par les requêtes préparées.
$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 tableau associatif en une forme convenable pour des requêtes SQL