【发布时间】:2014-04-17 11:42:52
【问题描述】:
我需要通过我的 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;
}
当这个函数被执行时,我得到以下错误:
致命错误:在非对象上调用成员函数 fetch_assoc() 在 /srv/globalroot/typo3_src-6.1.1/typo3/sysext/core/Classes/Database/DatabaseConnection.php 在第 1029 行
执行 SELECT 和执行 TRUNCATE 语句有什么区别?为什么一个有效而另一个无效?
【问题讨论】:
-
我刚刚尝试了一个向表中插入新数据的函数。它会导致与 TRUNCATE 函数相同的错误。难道“写”语句(TRUNCATE、INSERT)的处理方式必须不同于“读”(SELECT)语句吗?