TYPO3: как перенести $ GLOBALS ['TYPO3_DB'] -> quoteStr () для вставки Doctrine () - PullRequest
1 голос
/ 20 сентября 2019

В прошлом я использовал quoteStr() для очистки входных данных перед вставкой их в базу данных с помощью exec_INSERTquery(), например, так:

'info' => $GLOBALS['TYPO3_DB']->quoteStr($info, 'tx_mytablename')

Как правильно очистить входные данные (строки) для использования с Doctrine в TYPO3 8 и выше?

1 Ответ

2 голосов
/ 20 сентября 2019

В зависимости от вашего варианта использования следующие функции, предоставляемые Doctrine, могут ( должен! ) использоваться для очистки данных в запросах SQL:

  • createNamedParameter()
  • quoteIdentifier()
  • quoteIdentifiers()

Более подробная информация доступна в документации TYPO3 (раздел "QueryBuilder").

В следующем примере кода показано, как применить createNamedParameter() для целочисленного значения с именем $customerNumber.

$query = $queryBuilder
  ->select('username', 'customerNumber')
  ->from('fe_users')
  ->where($queryBuilder->expr()->eq(
    'customerNumber',
    $queryBuilder->createNamedParameter($customerNumber, \PDO::PARAM_INT)
  ))
  ->execute();
...