PHP Conference Nagoya 2025

pg_escape_literal

(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

Description

pg_escape_literal(PgSql\Connection $connection = ?, string $data): string

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.

Liste de paramètres

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()

Avertissement

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

Valeurs de retour

Une chaîne de caractères contenant les données protégées.

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_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})");
?>

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top