Extbase TYPO3 7.6中准备好的语句不起作用

Pra*_*iya 0 mysqli typo3 typo3-7.6.x

我对Extbase有疑问,希望有人可以帮助我。我想将查询作为准备好的语句提交,如下所示。

$query = $this->createQuery();
$query->getQuerySettings()->usePreparedStatement(TRUE);
$sqlParamList[] = 'test@gamil.com';
$sql = 'SELECT uid FROM table_name WHERE email = ?';
$query->statement($sql, $sqlParamList);
$result = $query->execute();
Run Code Online (Sandbox Code Playgroud)

但是我总是会收到如下错误。

您的SQL语法有误;检查与您的MariaDB服务器版本相对应的手册,以在'?'附近使用正确的语法。在第1行

请帮我?我哪里错了?

Tho*_*ler 5

您需要首先将其解析$sql为准备好的语句:

$preparedSql = $this->objectManager->get(\TYPO3\CMS\Core\Database\PreparedStatement::class, $sql, 'table_name');
Run Code Online (Sandbox Code Playgroud)

随着$this->objectManager->get()您实例化类PreparedStatement与参数$sql'table_name'

这将更改您的$ sql并将其解析?为准备好的语句。