Pdo\Pgsql::escapeIdentifier
SQL識別子として使用するために文字列をエスケープする
&reftitle.description;
public stringPdo\Pgsql::escapeIdentifier
stringinput
テーブル名、カラム名、または関数名など、SQL の識別子として使用する文字列をエスケープします。
これは、ユーザーから提供された識別子が特殊文字を含むため、
SQLパーサーが識別子の一部として解釈できない場合や、
大文字を含む識別子でそれを保持したい場合に有用です。
&reftitle.parameters;
input
エスケープ対象の文字列(string)
&reftitle.returnvalues;
エスケープされた文字列(string) を返します。
&reftitle.examples;
Pdo\Pgsql::escapeIdentifier の例
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 ()");
?>
]]>
&example.outputs.similar;
'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 ()
]]>
&reftitle.seealso;
PDO::quote