(PHP 5 >= 5.4.4, PHP 7, PHP 8)
pg_escape_literal — Protège une requête SQL littérale à insérer dans un champ texte
pg_escape_literal() protège une requête SQL littérale pour le requêtage à la base de données PostgreSQL. Le résultat retourné est une chaîne de caractères protégée au format PostgreSQL. pg_escape_literal() ajoute des simples quotes avant et après les données. Les utilisateurs ne doivent donc pas ajouter des simples quotes. L'utilisation de cette fonction est recommandée à la place de pg_escape_string(). Si la colonne est de type bytea, il convient d'utiliser à la place la fonction pg_escape_bytea(). Pour protéger les identifiants (par exemple les noms de table, nom de champs), il convient d'utiliser la fonction pg_escape_identifier().
connection
Une instance PgSql\Connection.
Quand connection est pas spécifié, la connexion par défaut est utilisé.
La connexion par défaut est la dernière connexion faite par
pg_connect() ou pg_pconnect()
À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.
dataUne chaîne de caractères contenant du texte à protéger.
Une chaîne de caractères contenant les données protégées.
| Version | Description |
|---|---|
| 8.1.0 |
Le paramètre connection attend désormais une instance de
PgSql\Connection ; auparavant, une resource était attendu.
|
Exemple #1 Exemple avec pg_escape_literal()
<?php
// Connexion à la base de données
$dbconn = pg_connect('dbname=foo');
// Lecture d'un fichier (contenant apostrophes et antislashes)
$data = file_get_contents('letter.txt');
// Protection des données
$escaped = pg_escape_literal($data);
// Insertion en base de données. Notez qu'il n'y a pas de simple quotes autour de {$escaped}
pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>