yii2 curd操作数据写法

一、执行原生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();

猜你喜欢

转载自www.cnblogs.com/cxx8181602/p/10471925.html
今日推荐