新增
使用model::save()操作进行新增数据 $user= new User; $user->username =$username; $user->password =$password; $user->save() 使用createCommand()进行新增数据 Yii::$app->db->createCommand()->insert('user', [ 'name' => 'test', 'age' => 30, ])->execute(); 批量插入数据 Yii::$app->db->createCommand()->batchInsert('user', ['name', 'age'], [ ['test01', 30], ['test02', 20], ['test03', 25], ])->execute();
查询
Test::find()->one(); 此方法返回一条数据; Test::find()->all(); 此方法返回所有数据; Test::find()->count(); 此方法返回记录的数量; Test::find()->average(); 此方法返回指定列的平均值; Test::find()->min(); 此方法返回指定列的最小值 ; Test::find()->max(); 此方法返回指定列的最大值 ; Test::find()->scalar(); 此方法返回值的第一行第一列的查询结果; Test::find()->column(); 此方法返回查询结果中的第一列的值; Test::find()->exists(); 此方法返回一个值指示是否包含查询结果的数据行; Test::find()->batch(10); 每次取10条数据 Test::find()->each(10); 每次取10条数据,迭代查询 //根据sql语句查询:查询name=test的客户 Test::model()->findAllBySql("select * from test where name = test"); //根据主键查询:查询主键值为1的数据 Test::model()->findByPk(1); //根据条件查询(该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面) Test::model()->findAllByAttributes(['username'=>'admin']); //子查询 $subQuery = (new Query())->select('COUNT(*)')->from('Test'); // SELECT `id`, (SELECT COUNT(*) FROM `Test`) AS `count` FROM `Test` $query = (new Query())->select(['id', 'count' => $subQuery])->from('Test'); //关联查询:查询客户表(Test)关联订单表(orders),条件是status=1,客户id为1,从查询结果的第5条开始,查询10条数据 $data = (new Query()) ->select('*') ->from('test') ->join('LEFT JOIN','orders','Test.id = orders.Test_id') ->where(['status'=>'1','Test.id'=>'1']) ->offset(5) ->limit(10) ->all()
修改
/* * $pk 代表主键,可以是一个也可以是一个集合。 * $attributes 代表是要修改的字段的集合。 * $condition 代表条件。 * $params 传入的值。 */ $count = User::model()->updateByPk($pk,$attributes,$condition,$params); if($count > 0) { echo '修改成功'; } else { echo '修改失败'; } //第二种修改方法 $model = User::model()->findByPk($pk); $model->id = 10; $model->user_name = 'zhangsan'; $model->password = 'sb'; $count = $model->update(array('id','user_name','password')); if($count>0) { echo '修改成功'; } else { echo '修改失败'; }
使用model::save()进行修改 $user = User::find()->where(['name'=>'test'])->one(); //获取name等于test的模型 $user->age = 40; //修改age属性值 $user->save(); //保存 直接修改:修改用户test的年龄为40 $result = User::model()->updateAll(['age'=>40],['name'=>'test']); 使用createCommand()修改 Yii::$app->db->createCommand()->update('user', ['age' => 40], 'name = test')->execute();
删除
使用model::delete()进行删除 $user = User::find()->where(['name'=>'test'])->one(); $user->delete(); 直接删除:删除年龄为30的所有用户 $result = User::deleteAll(['age'=>'30']); 根据主键删除:删除主键值为1的用户 $result = User::deleteByPk(1); 使用createCommand()删除 Yii::$app->db->createCommand()->delete('user', 'age = 30')->execute();