Yii2.0如何直接执行原生SQL
2018-01-15| 程成| 2496| 0| Yii

关于Yii2.0框架中如何执行原生sql,大致分为两个步骤:


一、首先创建CDbCommand对象


$sql = "select * from table where id = 1";
$connection = Yii::$app->ab->createCommand($sql);



这句话分为两部分,第一部分是Yii::$app()->db是获得数据库连接对象CDbConnection;

第二部分是调用createCommand()方法获得CDbCommand对象。



二、执行原生SQL语句


1、excute()方法


用于数据更新(非查询)操作(INSERT, UPDATE 和 DELETE),返回的是操作受影响的记录行数

$rowCount=$connection->execute();  


2、query()和queryXXX()方法


用于查询,对应的是 SELECT 语句。

Yii::$app()->$connection->queryAll(); //查询所有行数据

Yii::$app()->$connection->queryRow(); //查询第一行数据

Yii::$app()->$connection->queryColumn(); //查询第一列数据

Yii::$app()->$connection->queryScalar(); //查询第一行的第一字段



注:Yii::$app()->$connection->query(); 

返回CDbDataReader对象,注意这代表结果集而不是记录,可以通过以下方法来获取(遍历)记录:


// CDbDataReader::read()可以一次获取一行数据,到末尾时返回false
// CDbDataReader实现了迭代器接口因此可以使用foreach遍历
// 一次性返回所有的记录(数组)
while(($row=$dataReader->read())!==false) {
    foreach($dataReader as $row){
        $rows=$dataReader->readAll();
    }
}


×
作者:程成
QQ:492245711