PHP 8.4.2 Released!

Pdo\Pgsql::escapeIdentifier

(PHP 8 >= 8.4.0)

Pdo\Pgsql::escapeIdentifierEchappe une chaîne pour son utilisation en tant qu'identifiant SQL

Description

public Pdo\Pgsql::escapeIdentifier(string $input): string

Echappe une chaîne pour son utilisation en tant qu'identifiant SQL, tel qu'une table, une colonne ou un nom de fonction. Ceci est utile lorsque l'identifiant fourni par l'utilisateur pourrait contenir des caractères spéciaux qui ne seraient pas interprétés comme faisant partie de l'identifiant par l'analyseur SQL, ou lorsque l'identifiant pourrait contenir des caractères en majuscules dont la casse devrait être préservée.

Liste de paramètres

input
Une string contenant le texte à échapper.

Valeurs de retour

Une string contenant les données échappées.

Exemples

Exemple #1 Exemple de Pdo\Pgsql::escapeIdentifier()

<?php
$pdo
= new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);

$unescapedTableName = 'UnescapedTableName';
$pdo->exec("CREATE TABLE $unescapedTableName ()");

$escapedTableName = $pdo->escapeIdentifier('EscapedTableName');
$pdo->exec("CREATE TABLE $escapedTableName ()");

$statement = $pdo->query(
"SELECT relname FROM pg_stat_user_tables WHERE relname ilike '%tablename'"
);

var_export($statement->fetchAll(PDO::FETCH_COLUMN, 0));

$tableNameWithSymbols = 'Table-Name-With-Symbols';
$pdo->exec("CREATE TABLE $tableNameWithSymbols ()");
?>

Résultat de l'exemple ci-dessus est similaire à :

array (
  0 => 'unescapedtablename',
  1 => 'EscapedTableName',
)
Fatal error: Uncaught PDOException: SQLSTATE[42601]: Syntax error: 7 ERROR:  syntax error at or near "Table"
LINE 1: CREATE TABLE Table-Name-With-Symbols ()

Voir aussi

  • PDO::quote() - Protège une chaîne pour l'utiliser dans une requête SQL PDO
add a note

User Contributed Notes

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