php - TYPO3 扩展存储库截断查询

标签 php sql typo3 extbase

我需要通过我的 TYPO3 扩展的存储库清除(TRUNCATE)数据库表。我已经有了各种有效的 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()

关于php - TYPO3 扩展存储库截断查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23132203/

相关文章:

php - 如何将数组添加到嵌套数组

PHP 检查 URL 是否包含查询字符串

php - 有没有一个好的 PHP 向量和矩阵库?

php只比较两个日期,月份和年份

mysql - 即使我复制粘贴其内容,sql 也找不到字段中的记录

TYPO3 内联 if 条件中的流体动态变量部分

MySQL 特定列的内连接

MySQL select查询返回250K+结果,delete查询只删除一个?

typo3 - Viewhelper f :link. TYPO3 9.5 LTS 中的打字链接

typo3 - tx-news 忽略 gridelement 中的所有 flexform 设置