(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ésultats retournée est une chaîne de caractère protégé 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 fonctionpg_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().
Note:
Cette fonction a une protection de code interne et peut être utilisée pour PostgreSQL 8.4 ou moins récent.
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.
data
Une 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})");
?>