(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_escape_bytea — Protège une chaîne pour insertion dans un champ bytea
pg_escape_bytea() protège les caractères de la
chaîne data
avec le mode bytea. La chaîne
protégée est retournée.
Note:
Lorsque vous utilisez une commande
SELECT
avec des données de type bytea, PostgreSQL retourne des valeurs octales, préfixées avec des antislashs '\' (par exemple \032). Les utilisateurs doivent effectuer la conversion en format binaire manuellement.pg_escape_bytea() requiert PostgreSQL 7.2 ou plus récent. Avec PostgreSQL 7.2.0 et 7.2.1, les données bytea doivent être transtypée lorsque vous activez le support des chaînes de caractères multioctets. C'est-à-dire
INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);
. PostgreSQL 7.2.2 ou plus récent ne requiert pas cette manipulation. Toutefois, si le client et le serveur n'utilisent pas le même jeu de caractères, il peut arriver des erreurs. Il faut alors forcer le transtypage manuellement.
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 connection par défaut est obsolète.
data
Une chaîne de caractères contenant du texte ou des données binaires qui seront insérées dans la colonne bytea.
Une chaîne de caractères contenant les données échappées.
Version | Description |
---|---|
8.1.0 |
Le paramètre connection attend désormais une instance de
PgSql\Connection ; auparavant, une ressource était attendu.
|
Exemple #1 Exemple avec pg_escape_bytea()
<?php
// Connexion à la base de données
$dbconn = pg_connect('dbname=foo');
// Lecture d'un fichier binaire
$data = file_get_contents('image1.jpg');
// Échappement des données binaires
$escaped = pg_escape_bytea($data);
// Insertion dans la base de données
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>