Yii2的增删改查操作示例

yii2 增删改查 [ 2.0 版本 ]

新增

使用model::save()操作进行新增数据

//第一种
$user= new User;         
$user->username =$username;  
$user->password =$password;  
$user->save()
//第二种 写一个公共方法,传入数组,数组中每一个字段的名称与数据库中字段一致
public static function addUser($params)
    {
        try {
       		//常用的字段可以直接写到公用函数中,而不用每次都单独传值
            $params['create_time'] = date("Y-m-d H:i:s");
            //查询一下这个用户是否存在
            $user_where=" user_name=".$params['user_name'];
         	$user_ay=User::find()->select('id')->where($user_where)->asArray()->one();
            if($user_ay['id']>0){
                $user_id=$user_ay['id'];
            }else{
                $model = new User();
                if (!$model->load($params, '')) {
                    $user_id = 0;
                }
                if (!$model->validate()) {
                    $user_id = 0;
                }
                if ($model->save()) {
                	//得到保存的用户id
                    $user_id = $model->primaryKey;
                }
            }
        } catch (Exception $e) {
            $user_id=0;
        }
        return $user_id;
    }

使用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();

修改

使用model::save()进行修改

$user = User::find()->where(['name'=>'xiaoming'])->one(); //获取name等于test的模型
$user->age = 40; //修改age属性值
$user->save();   //保存

直接修改:修改用户test的年龄为40,将所有用户名称为xiaoming的年龄都改为40

$result = User::model()->updateAll(['age'=>40],['name'=>'xiaoming']);

使用createCommand()修改

Yii::$app->db->createCommand()->update('user', ['age' => 40], 'name = test')->execute();

写一个公共方法,修改用户信息

public static function saveEditUserInfo($params)
    {
        try {
            $model = new User();
            $model = $model::findOne($params['id']);
            if(!$model){
                throw new Exception('查无此用户!');
            }
            unset($params['id']);
            if (!$model->load($params, '')) {
                throw new Exception('数据读取失败!');
            }
            if (!$model->validate()) {
                throw new Exception('数据验证失败!');
            }
            if (!$model->save()) {
                throw new Exception('数据保存失败!');
            }
        } catch (Exception $e) {
            self::$result['status'] = 1;
            self::$result['msg'] = $e->getMessage();
        }
        return self::$result;
    }

删除

使用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();

查询

查询单条记录

    public static function getuserinfo($user_name){
        $user_where=" user_name=".$user_name;
        $user_info=User::find()->select('*')->where($user_where)->asArray()->one();
        return $user_info;
    }

查询多条数据

 public static function getuserlist($user_name){
        $user_where=" user_name=".$user_name;
        $user_info=User::find()->select('*')->where($user_where)->asArray()->all();
        return $user_info;
    }

猜你喜欢

转载自blog.csdn.net/guo_qiangqiang/article/details/86479072