Typo3 extbase sql_fetch_assoc错误

时间:2013-06-12 10:39:21

标签: typo3 extbase

在Typo3版本6.1中,我在My extension Repository中编写了一些自定义查询

例如在文件Mytest / Classes / Domain / Repository / MytestRepository.php

class MytestRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
 public function myFunction(){

        $sql = 'SELECT * FROM some_table ';

        $sqlResult = $GLOBALS['TYPO3_DB']->sql_query($sql);
        while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($sqlResult)) {
                $rowone = $row['rowone'];
        }
 }
}

在控制器中调用该函数

$test = $this->MytestRepository->myFunction();

但问题是,我收到错误

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

有人有解决方案吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可以执行以下自定义查询:

$query = $this->createQuery();
$query->statement('SELECT * FROM some_table');
$result = $query->execute();

如果您不希望从查询中获取对象(我假设查看您的while循环),则可以在执行查询之前设置以下行:

$query->getQuerySettings()->setReturnRawQueryResult(TRUE);

使用setReturnRawQueryResult得到一个普通数组。