P.S. так же предыдущий вариант в любом случае является самым медленным:

```
<?php
pg_connect('dbname=fias');
$startTimePgEscape = microtime(true);
for($i = 0; $i < 1000000; ++$i) {
        pg_escape_identifier('duplicate');
}
$endTimePgEscape = microtime(true) - $startTimePgEscape;

$startTimeStupidCashe = microtime(true);
$cache = array();
for($i = 0; $i < 1000000; ++$i) {
        if (!isset($cache['duplicate'])) {
                $cache['duplicate'] = pg_escape_identifier('duplicate');
        }
        $cache['duplicate'];
}
$endTimeStupidCashe = microtime(true) - $startTimeStupidCashe;

$startTimePreviousVersion = microtime(true);
for($i = 0; $i < 1000000; ++$i) {
        if (!is_scalar('duplicate') || strpos('"', 'duplicate')) {
                 throw new QueryException('Possible SQL injection in field name');
        }
        '"' . 'duplicate' . '"';
}
$endTimePreviousVersion = microtime(true) - $startTimePreviousVersion;


echo 'Pg escape:        ' , $endTimePgEscape , "\n";
echo 'Stupid Cashe:     ' , $endTimeStupidCashe, "\n";
echo 'Previous Version: ' , $endTimePreviousVersion, "\n";
``` 

Выдает:

```
dallone@dallone-laptop:~$ php test.php
Pg escape:        1.0638558864594
Stupid Cashe:     0.42015981674194
Previous Version: 1.8881800174713
```