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