其他分享
首页 > 其他分享> > TYPO3扩展存储库截断查询

TYPO3扩展存储库截断查询

作者:互联网

我需要通过TYPO3扩展的存储库清除(删节)数据库表.我已经有各种有效的SELECT查询.他们看起来像这样:

public function getUsergroups() {

    $query = $this->createQuery();
    $query->getQuerySettings()->setReturnRawQueryResult(TRUE);

    $query->statement('SELECT * FROM fe_groups WHERE hidden=0 AND deleted=0');

    $result = $query->execute();

    return $result;
}

这可行.

然后是清除数据库表的功​​能,如下所示:

public function updateProductPermissions($submitArray) {
    $query = $this->createQuery();
    $query->getQuerySettings()->setReturnRawQueryResult(TRUE);

    $query->statement('TRUNCATE TABLE tx_chiliproducts_domain_model_permission')->execute();

    return true;
}

执行此函数时,出现以下错误:

Fatal error: Call to a member function fetch_assoc() on a non-object
in
/srv/globalroot/typo3_src-6.1.1/typo3/sysext/core/Classes/Database/DatabaseConnection.php
on line 1029

执行SELECT和执行TRUNCATE语句有什么区别?为什么一个起作用而另一个不起作用?

解决方法:

我不确定是否可以截断extbase持久层.如果您想让生活变得轻松,只需使用常规的TYPO3 CMS数据库类:

$GLOBALS['TYPO3_DB']->exec_TRUNCATEquery('table');

请记住,extbase可能不知道这个截断,并且它可能在缓存中仍然有一些对象.

API的方式是调用$repository-> removeAll().

标签:typo3,extbase,sql,php
来源: https://codeday.me/bug/20191029/1961566.html