问候语,
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();
我做错了什么?有解决方案吗 非常感谢提前。
答案 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