PHP 8.4.2 Released!

Pdo\Pgsql::escapeIdentifier

(PHP 8 >= 8.4.0)

Pdo\Pgsql::escapeIdentifierЭкранирует строку для использования в качестве SQL-идентификатора

Описание

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

Экранирует строку для использования в качестве SQL-идентификатора, например, имени таблицы, столбца или функции. Полезно, когда пользовательский идентификатор может содержать специальные символы, которые в противном случае не будут интерпретированы SQL-анализатором как часть идентификатора, или когда идентификатор может содержать символы верхнего регистра, регистр которых должен быть сохранён.

Список параметров

input
Строка (string), содержащая текст, который должен быть экранирован.

Возвращаемые значения

Строка (string), содержащая экранированные данные.

Примеры

Пример #1 Пример использования метода 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 ()");
?>

Вывод приведённого примера будет похож на:

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

Смотрите также

  • PDO::quote() - Заключает строку в кавычки для использования в запросе
Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top