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

三、建模ORM 

插入数据
$add = new Test();
$add->name = 'Xing';
$add->class = 'B';
$add->save();

查:

1.查询一条
$row = Test::find()->where('id=:id',[':id'=>5])->asArray()->one(); 2.查询多条
$rows = Test::find()->where('id>:id and class=:class',[':id'=>12,':class'=>'C'])->asArray()->all(); 3.统计查询
$count = Test::find()->count();

改:

1.save()进行修改
$update = Test::find()->where('id=:id',[':id'=>6])->one();
$update->score = 100;//修改属性值
$update->save(); 2.方法updateAll()
$updateAll = Test::updateAll(['name'=>'Ping'],'id=:id',[':id'=>10]);

删:

1.先查后删
$del = Test::find()->where('id=:id',[':id'=>6])->one();
$del->delete(); 2.直接删除
Test::deleteAll('id>:id', [':id' => 29]);

yii2.0 curd操作数据写法的更多相关文章

  1. yii2.0 curd操作

    $customer=new Customer();//插入操作 $customer->name='小熊'; $customer->save(); //修改操作 $model=Custome ...

  2. Yii2.0源码分析之——控制器文件分析(Controller.php)创建动作、执行动作

    在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建contr ...

  3. yii2.0的学习之旅(二)

    前言:上一次我们简单认识了一下yii2.0安装,模型基本(增,删,改,查)操作 一.前后台数据交互 *如果你觉得默认的top样式太丑,可以这样关掉* *底部也可以这样关掉* (1)mvc合作操作数据 ...

  4. Yii2.0.7 限制user module登录遇到的问题

    在Yii2.0.6的时候我是在以下文件通过以下方法实现的. frontend/modules/user/Module.php namespace frontend\modules\user; clas ...

  5. yii2.0归档安装方法

    我前几天用composer安装 一直没成功  我就用归档的方法安装了  所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功 ...

  6. [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索

    关联字段增加搜索 post表关联adminuser表,通过post.author_id  adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜 ...

  7. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

  8. yii2.0框架安装心得

    yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...

  9. yii2.0高级框架配置时打开init.bat秒退的解决方法 (两种方法)

    第一种: 这几天刚接触到yii2.0框架,在配置advanced版本时运行init.bat初始化文件时老是闪退: 用cmd运行该文件时显示:The OpenSSL PHP extension is r ...

随机推荐

  1. 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 F. Islands

    On the mysterious continent of Tamriel, there is a great empire founded by human. To develope the tr ...

  2. Bootstrap中DropDown插件显示下拉列表,点击下拉列表区域,不会再自动关闭。

    目标: Bootstrap中DropDown插件显示下拉列表,点击下拉列表区域,不会再自动关闭. 参考:http://v3.bootcss.com/javascript/#dropdowns    / ...

  3. ftp安装和虚拟用户创建(终于搞清楚了)

    安装 一.安装 sudo apt-get install vsftpd 二.查看安装结果 安装完毕,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口 ps -eaf|grep vsftpd ...

  4. MHA ssh检查,repl复制检查和在线切换日志分析

    一.SSh 检查日志分析 执行过程及对应的日志: 1.读取MHA manger 节点上的配置文件 2.根据配置文件,得到各个主机的信息,逐一进行SSH检查 3.每个主机都通过SSH连接除了自己以外的其 ...

  5. Apache ab测试工具使用方法(无参、get传参、post传参)(转)

    转自Apache ab测试工具使用方法(无参.get传参.post传参) Ab测试工具是apache自带的测试工具,具有简单易上手的特性,下面我总结一下我的使用方法,首先去官方下载apache程序包, ...

  6. 安装wordpress的过程

    1 首先安装lamp.在安装php时,由于ubuntu16.04源中自带的是php7,所以需要直接安装 apt-get install phpapt-get install libapache2-mo ...

  7. 【转】Linux iptables 详解

    转自:https://www.cnblogs.com/qwertwwwe/p/9452370.html 最近搭一个框架需要用到iptables做映射,学习了下iptables的原理,总结下方便以后查~ ...

  8. C#使用反射机制获取类信息

    1.用反射动态创建类实例,并调用其公有成员函数. //新建一个类库项目,增加一个GetSum方法. using System;   namespace ClassLibrary1 {    publi ...

  9. 记一次使用dubbo过程中版本冲突导致的坑

    前言:2019年09月23日临下班,产品的一个变更需求临近尾声阶段.本地测试OK,兴致冲冲的想着发布到测试环境,验证一下没有问题,五分钟结束战斗,明天就开始下个需求了.随在CE(公司的devOps系统 ...

  10. 漫谈 MyCat 配置系统

    上篇文章<MyCat 启蒙:分布式系统的数据库架构演变>中,我们通过一个项目从零到百万级访问的变化,展示了这个过程中的数据层架构变化.其中说到了数据层架构变化所带来的三个问题: 读写数据源 ...