一、执行原生sql查询,创建yii\db\Command insert(),update(),delete()直接构建,相应的sql语句
查:
1.查询一条 \Yii::$app->db->createCommand('SELECT * FROM test')->queryOne(); 2.查询多条 \Yii::$app->db->createCommand('SELECT * FROM test')->queryAll(); 3.绑定单个防SQL注入参数 \Yii::$app->db->createCommand('SELECT * FROM test WHERE id=:id')->bindValue(':id',5)->queryOne(); 4.绑定多个防SQL注入参数 \Yii::$app->db->createCommand('SELECT * FROM test WHERE id=:id AND name=:name')->bindValues([':id'=>3,':name'=>'Tom'])->queryOne(); 5.统计查询 \Yii::$app->db->createCommand('SELECT COUNT("id") FROM test')->queryScalar();
增:
1.插入数据 \Yii::$app->db->createCommand()->insert('test',['name'=>'James','age'=>'22'])->execute(); 2.一次插入多行 \Yii::$app->db->createCommand()->batchInsert('test',['name','age'],[ ['Hong','33'], ['Wei','44'] ])->execute();
改:
修改数据 \Yii::$app->db->createCommand()->update('test',['name'=>'Li'],'id=:id and class=:class',[':id'=>1,':class'=>'E'])->execute();
删:
删除数据 \Yii::$app->db->createCommand()->delete('test','id>:id',[':id'=>6])->execute();
二、查询构建器,创建yii\db\Query
查:
1.查询一条 $row = (new \yii\db\Query()) ->select('*') ->from('test') ->where('id=:id', [':id'=>6]) ->one(); 2.查询多条 $rows = (new \yii\db\Query()) ->select('id,name') ->from('test') ->where(['>','id', 2]) ->andWhere('class=:class', [':class'=>'A']) ->all(); 3.统计查询 $count = (new \yii\db\Query()) ->select('count(id)') ->from('test') ->where('class=:class', [':class'=>'B']) ->count(); 4.关联查询 $join = (new \yii\db\Query()) ->from('student s') ->select('s.*,t.id t_id,t.name t_name') ->leftJoin('teacher t','s.class = t.class') ->where('t.id=:t_id', [':t_id' => '2']) ->offset(3) ->limit(2) ->all();