Yii框架---对数据的增删改查Model篇(以及排序、where or、where 大于...)

如果要使用model的方法先给user表生成一个model,就可以方便对此表进行操作了。
首先在数据库中创建好表,然后在项目的访问路径后面加上/gii
例如 test.com/gii
进入页面安装界面提示填写然后提交,项目文件里会多出个刚刚生成的文件,OK。
例子的user表结构

id name mobilephone
1 邢书亮 13199368737
2 王晓天 15174673312

1.model增加

//model的增加操作首先要new一下才能使用。
$user = new User();
$user->id = $id;
$user->name = $name;
$user->mobilephone = $mobile;
$user->save();
//save可用于增加,修改。在new实例化时是增加功能。

2.model查询(model的查询方法有很多,写几个常见的吧。)

    //想查询一条记录可以这样:
    $user = User::findOne(['id' => 1,mobilephone=>'15174673312']);   
    //查询user表id为1的一条数据。查询条件简单就可以直接findOne。
    $user = User::find()
        ->select('id,name')
    	->where(['mobilephone' => '15174673312'])
    	->one();
     //查询到的结果就是一条满足条件的 id,name字段值 “  1 王晓天  ”。 如果是查询多个条件可以这么写:
        $user = User::find()
        ->where(['mobilephone' => '15174673312'])
        ->andwhere(['id' => 1])
        ->one();
        //或者这样:
        $user = User::find()
        ->where(['mobilephone' => '15174673312' , id => 1])
        ->asArray()
        ->one();
    //想要获取所有数据把上面的one()换成all()即可。
补充:
User::find()->one();    //返回一条数据;
User::find()->all();    //返回所有数据;
User::find()->count();    //返回记录的数量;
User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id');   统计符合条件的总条数;
User::find()->average();   //返回指定列的平均值;
User::find()->min();    //返回指定列的最小值 ;
User::find()->max();   //返回指定列的最大值 ;
User::find()->scalar();    //返回值的第一行第一列的查询结果;
User::find()->column();    //返回查询结果中的第一列的值;
User::find()->exists();    //返回一个值指示是否包含查询结果的数据行;
User::find()->batch(10);  每次取 10 条数据 
User::find()->each(10);  每次取 10 条数据, 迭代查询

3.model修改

//修改使用save不需要实例化直接静态调用即可。
$user = User::find()
	->where(['id'=>'1'])
	->one();                  //获取id等于1的模型
$user->mobilephone= 13333333333;    //修改mobilephone属性值
$user->name = '阿尔法';                        //修改name的值为阿尔法
....                                                          //修改...属性值
$user->save();                                       //保存。等同于 $user->update();

4.model删除

$user = User::find()->where(['id'=>'1'])->one(); 
$user->delete();   //删除id=1的数据

User::deleteAll('name = 王晓天');    删除 name = 王晓天的数据;

yii遇到的查询条件,比如where or,where 大于

$user  = User::find()
	->where(['status' => 1, 'type' => 2])
	->andwhere(['or',['name' => '张三'], ['name' => '李四']])
	->andwhere(['>=', 'age', 21])
	->all();

生成的语句是这样:
SELECT * FROM user WHERE (((status=1) AND (type=2)) AND ((name=‘张三’) OR (name=‘李四’))) AND (age >= 21)

排序

$user= User::find()->where(['id' => 1])->orderBy(['create_time' => SORT_DESC])->createCommand()->queryOne();   

//也可以这么写:

 $user = User::find()->where(['id' => 1])->orderBy('create_time desc')->createCommand()->queryOne();

//上面的语句等于原生sql的 : ‘SELECT * FROM user WHERE id=‘1’ ORDER BY create_time DESC’;
//获取一条id=1,以create_time字段为降序的数据。

//想查看下yii生成的sql语句?输出sql语句用 getRawSql()方法。例:

$sql= User::find()->where(['or',['name' => '张三'], ['name' => '李四']])->createCommand()->getRawSql();
echo $sql;   //echo一下 或者 var_dump 搞定。

还有许多的方法以及不同的写法以后记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值