yii2.0 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();
三、建模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操作数据写法的更多相关文章
- yii2.0 curd操作
$customer=new Customer();//插入操作 $customer->name='小熊'; $customer->save(); //修改操作 $model=Custome ...
- Yii2.0源码分析之——控制器文件分析(Controller.php)创建动作、执行动作
在Yii中,当请求一个Url的时候,首先在application中获取request信息,然后由request通过urlManager解析出route,再在Module中根据route来创建contr ...
- yii2.0的学习之旅(二)
前言:上一次我们简单认识了一下yii2.0安装,模型基本(增,删,改,查)操作 一.前后台数据交互 *如果你觉得默认的top样式太丑,可以这样关掉* *底部也可以这样关掉* (1)mvc合作操作数据 ...
- Yii2.0.7 限制user module登录遇到的问题
在Yii2.0.6的时候我是在以下文件通过以下方法实现的. frontend/modules/user/Module.php namespace frontend\modules\user; clas ...
- yii2.0归档安装方法
我前几天用composer安装 一直没成功 我就用归档的方法安装了 所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功 ...
- [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索
关联字段增加搜索 post表关联adminuser表,通过post.author_id adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜 ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- yii2.0框架安装心得
yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...
- yii2.0高级框架配置时打开init.bat秒退的解决方法 (两种方法)
第一种: 这几天刚接触到yii2.0框架,在配置advanced版本时运行init.bat初始化文件时老是闪退: 用cmd运行该文件时显示:The OpenSSL PHP extension is r ...
随机推荐
- 使用filebeat收集日志传输到redis的各种效果展示
0 环境 Linux主机,cengtos7系统 安装有openresty软件,用来访问生成日志信息 1.15.8版本 安装有filebeat软件,用来收集openresty的日志 7.3版本 安装有r ...
- Linux FTP的安装与权限配置
ftp安装部分,操作步骤如下: 1.切换到root用户 2.查看是否安装vsftp,我这个是已经安装的. [root@localhost vsftpd]# rpm -qa |grep vsftpd v ...
- ios UICollectionView 加载数据后 滑动卡顿问题
最近项目的资源图片变大了,滑动时总是卡顿,在这里用NSOperationQueue解决了一下 .h 文件 @interface CollectionViewCell : UICollectionVie ...
- java面试07——设计模式
1.什么是设计模式 设计模式就是经过前人无数次的实践总结出的,设计过程可以反复使用的,可以解决特定问题的设计方法. 2.常用的设计模式有哪些 2.1单例模式(饱汉模式.饿汉模式.双重锁模式) http ...
- Find the hotel HDU - 3193 (ST表RMQ)
Summer again! Flynn is ready for another tour around. Since the tour would take three or more days, ...
- JSONP 跨域请求原理
0x00 简介 由于浏览器的同源策略,我们想要从别的域获取数据变得困难,需要特殊的技术才能获取 0x01 使用 客户域:client.com 服务器(他域):server.com 如客户想访问 : h ...
- fastjson的方法应用与java JSONObject
Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson.并且还超越了go ...
- JavaScript双重排序
前言:正好这两天正在做一个功能,需要在前台进行排序展示,因为是动态的,后台排序不能搞定,只能咋前台通过JS来进行排序展示,所以我们用sort()来解决这个问题,sort不仅能给数组,对象,集合进行简单 ...
- pro git学习笔记
- JVM metaspace元空间
元空间的本质和永久代类似,都是对JVM规范中方法区的实现. 元空间不在虚拟机中,而是使用本地内存. 用于元空间的JVM参数: -XX:MetaspaceSize=N 初始化Metaspace大小, ...