Как в doctrine query builder эскейпить динамическое имя поля?

Как можно обезопасить динамические значения полей, такие как $key, от возможности SQL-инъекций при их использовании в запросе Doctrine?
  • 20 июля 2024 г. 12:12
Ответы на вопрос 1
Для безопасного использования динамических значений полей в запросе Doctrine можно использовать метод parameter() для экранирования значений. Например:
```php
$key = 'column_name';
$value = 'some_value';

$qb = $entityManager->createQueryBuilder();
$qb->select('t')
    ->from('Entity\Table', 't')
    ->where($qb->expr()->eq('t.' . $qb->expr()->identifier($key), ':value'))
    ->setParameter('value', $value);

$query = $qb->getQuery();
$results = $query->getResult();
```

Таким образом, значение переменной $key будет безопасно экранировано и не представит уязвимости для SQL-инъекций.
Похожие вопросы