2017-04-11 141 views
2

我需要從表中獲取行數作爲字符串。 我執行此代碼:Phalcon - 在PHQL中獲得計數結果

$phql = "SELECT COUNT(*) FROM Model WHERE id = $this->id"; 
$count = $this->getModelsManager()->createQuery($phql)->execute(); 

現在$countPhalcon\Mvc\Model\Resultset\Complex對象。爲了得到正確的結果,我需要做這樣的事情:

$count[0]->{0} 

在我看來這是可怕的。有沒有其他的方法來獲得這個結果?

回答

3

幾個解決方案:

1)使用簡單的查詢:

$count = $this->db->fetchOne('SELECT COUNT(*) AS total FROM products'); 

2)型號聚集

$count = Products::count(
    "area = 'Testing'" 
); 

更多信息和方法:https://docs.phalconphp.com/ar/3.2/db-models在部分生成計算

3)如果您堅持使用executeQuery(),您應該添加getFirst()以獲得只有一個結果。類似於PDO的fetchOne()

$phql = "SELECT COUNT(*) AS total FROM Models\Products"; 
$count = $this->modelsManager->executeQuery($phql)->getFirst();