简单介绍
上节介绍了AR类,是以面向对象的方式操作数据库,yii2还提供了一套统一的数据库访问层API(Data Access Objects),可以以SQL语句方式操作数据库表,能完成AR类的任何操作,但是相对与AR使用DAO需要写大量的sql语句,如果你的sql语句很复杂,会在后续工作中很难维护,所以一般建议还是使用AR类。但是不管DAO还是AR他们都是通过Query基类创建sql语句(AR类通过创建AQ对象操作),最后都是通过Command类的queryInternal方法的PDO操作返回查询的数据。
源码解析
基本的DAO操作
$query = Yii::$app->db->createCommand(“select * from oc_user where id= :id", [':id' => $id])->queryOne();
Query查询返回数组
$query = (new Query())
->select('*')
->from('oc_user')
->where('id = :id', [':id' => $id])
->one();
上面两种格式返回oc_user中id为指定 id的行。返回类型为数组|布尔