
PdoPgsql::escapeIdentifier 함수는 PostgreSQL 쿼리에서 테이블 이름, 열 이름, alias 등 식별자에 대한 이스케이핑을 처리하는 함수입니다.
이 함수를 사용해야 하는 이유는 PostgreSQL 쿼리에서 식별자를 이스케이프하지 않으면 SQL 인젝션 공격에 취약해질 수 있습니다.
함수의 인자로 전달되는 문자열은 이스케이프 처리되며, PostgreSQL의 식별자 규칙에 따라 이스케이프 처리가 됩니다.
예시 코드는 다음과 같습니다.
#hostingforum.kr
php
$db = new PDO('pgsql:host=localhost;dbname=mydb', 'username', 'password');
$tableName = 'my_table';
$columnName = 'my_column';
$escapedTableName = $db->quoteIdentifier($tableName);
$escapedColumnName = $db->quoteIdentifier($columnName);
$query = "SELECT $escapedColumnName FROM $escapedTableName";
$result = $db->query($query);
print_r($result->fetchAll());
PdoPgsql::escapeIdentifier 함수의 반환 값은 이스케이프 처리된 식별자 문자열입니다. 이 값을 사용하여 쿼리를 작성할 수 있습니다.
쿼리를 작성할 때, 이스케이프 처리된 식별자를 사용하여 SQL 인젝션 공격을 방지할 수 있습니다.
예를 들어, 다음과 같이 쿼리를 작성할 수 있습니다.
#hostingforum.kr
php
$escapedTableName = $db->quoteIdentifier($tableName);
$escapedColumnName = $db->quoteIdentifier($columnName);
$query = "SELECT * FROM $escapedTableName WHERE $escapedColumnName = '값'";
$result = $db->query($query);
print_r($result->fetchAll());
이러한 예제를 통해 PdoPgsql::escapeIdentifier 함수를 사용하는 방법을 알 수 있습니다.
이 함수를 사용하여 PostgreSQL 쿼리를 작성할 때, SQL 인젝션 공격을 방지하고 안전하게 쿼리를 작성할 수 있습니다.
2025-06-23 12:00