PHP Conference Japan 2024

Pdo\Pgsql::escapeIdentifier

(PHP 8 >= 8.4.0)

Pdo\Pgsql::escapeIdentifier將字串跳脫以用作 SQL 識別符號

說明

public Pdo\Pgsql::escapeIdentifier(字串 $input): 字串

將字串跳脫以用作 SQL 識別符號,例如資料表、欄位或函式名稱。當使用者提供的識別符號可能包含特殊字元,而這些字元在其他情況下不會被 SQL 解析器解讀為識別符號的一部分時,或者當識別符號可能包含應保留大小寫的大寫字元時,這會很有用。

參數

輸入
一個包含要被跳脫之文字的 字串

回傳值

一個包含已跳脫資料的 字串

範例

範例 #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