pg_delete

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

pg_delete Efface des lignes PostgreSQL

Description

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

pg_delete() efface les lignes d'une table spécifiées par les clés et valeur du tableau associatif conditions.

Si flags est fournit, pg_convert() est appliqué à conditions avec les drapeaux fournit.

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

Nom de la table depuis laquelle les lignes seront effacées.

conditions

Un tableau où les clés sont les noms des champs de la table table_name et où les valeurs sont les valeurs de ces champs qui sont à effacés.

flags

Toute combinaison des valeurs suivantes : 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 faite 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é dans le paramètre flags.

Historique

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

Exemples

Exemple #1 Exemple avec pg_delete()

<?php
$db
= pg_connect ('dbname=foo');
// 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_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
if (
$res) {
echo
"Les données POSTées ont été effacées : $res\n";
} else {
echo
"Les données d'entrées sont erronées.\n";
}
?>

Voir aussi

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

add a note add a note

User Contributed Notes 1 note

up
-4
Anonymous
20 years ago
One should take care when checking the return value.
0 == false which is not equal with failed delete.

if(!$res)
  echo "Nothing was deleted";
To Top