TYPO3:如何为 Doctrine insert() 迁移 $GLOBALS['TYPO3_DB']->quoteStr()
TYPO3: how to migrate $GLOBALS['TYPO3_DB']->quoteStr() for Doctrine insert()
过去,我使用 quoteStr()
来清理输入数据,然后再使用 exec_INSERTquery()
将其插入数据库,例如像这样:
'info' => $GLOBALS['TYPO3_DB']->quoteStr($info, 'tx_mytablename')
在 TYPO3 8 及更高版本中使用 Doctrine 来清理输入数据(字符串)的正确方法是什么?
根据您的用例,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();
过去,我使用 quoteStr()
来清理输入数据,然后再使用 exec_INSERTquery()
将其插入数据库,例如像这样:
'info' => $GLOBALS['TYPO3_DB']->quoteStr($info, 'tx_mytablename')
在 TYPO3 8 及更高版本中使用 Doctrine 来清理输入数据(字符串)的正确方法是什么?
根据您的用例,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();