过去,我使用quoteStr()
来清理输入数据,然后再将其插入数据库,例如exec_INSERTquery()
:
'info' => $GLOBALS['TYPO3_DB']->quoteStr($info, 'tx_mytablename')
清理输入数据(字符串(以用于 TYPO3 8 及更高版本中的 Doctrine 的正确方法是什么?
根据您的用例,Doctrine 提供的以下函数可以(应该!(用于清理 SQL 查询中的数据:
createNamedParameter()
quoteIdentifier()
quoteIdentifiers()
更多详细信息可在 TYPO3 文档中找到("查询生成器"部分(。
下面的代码示例演示如何对名为$customerNumber
的整数值应用createNamedParameter()
。
$query = $queryBuilder
->select('username', 'customerNumber')
->from('fe_users')
->where($queryBuilder->expr()->eq(
'customerNumber',
$queryBuilder->createNamedParameter($customerNumber, PDO::PARAM_INT)
))
->execute();