Yii2 - 连接到Controller Action内的数据库

时间:2014-12-10 19:48:51

标签: mysql database highcharts connection yii2

问候语,

Facts:
Database named -> acastro
Table called -> contacto
Fields in table are -> id, nome, email

我制作了一个Yii2应用程序,需要将highcharts图表连接到我的数据库中的表字段。 如何在一个名为actionAdmin的动作中连接到我的数据库,然后计算存储在acastro数据库中的Contacto表中的id的数量。

在旧的Yii1.xx我用这种方式建立连接:

public function actionAdmin() {
$sql = Yii::app()->db->createCommand('
SELECT count(*) as total
FROM contacto
')->queryAll();

$total = array();

for ($i = 0; $i < sizeof($sql); $i++){
$total[] = (int) $sql[$i]["total"];
}
$this->render('admin', array('total' => $total));
}
}

问题是这个语法在Yii2中不再有效,并且我已经尝试过在Yii2 api指南中解释的sintaxe,但它总是给出我未定义变量的错误。以下是我用来连接Yii2 api指南的代码:

use yii\db\Command;
$total = $connection->createCommand('SELECT count (*) FROM contacto')->queryAll();

我做错了什么?有解决方案吗 非常感谢提前。

2 个答案:

答案 0 :(得分:1)

我不太确定它会解决你的问题。

但在yii2中这是语法

使用app \ models \ Contacto; //查看您的Contacto Model名称空间

$query = (new Query())->from('contacto');
$count = $query->count('column_name');

我希望这会有所帮助

答案 1 :(得分:1)

Yii2中最简单的语法是:

$count=(new \yii\db\Query)->from('TBL_NAME')->count('*');

它只返回计数。例如:500