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