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 ...
随机推荐
- Homebrew学习(六)之替换及重置homebrew、Homebred Core、Homebrew cask默认源
替换及重置homebrew默认源 中科大源 替换官方源: // 替换brew.git: cd "$(brew --repo)" git remote set-url origin ...
- ms17_0199样本测试
一大早就各种消息弹框,于是就来测试一波 https://github.com/nixawk/metasploit-framework/blob/8ab0b448fdce15999f155dfd7b22 ...
- 2019.9.16 linux安装软件lamp
2019/9/16 Linux软件安装 方式:yum/rpm/源码安装 yum安装: yum 是通过分析RPM的包头数据后,根据各软件的相关性制作出属性相对应的解决方案,然后可以自动处理软件的相依属性 ...
- PHP对有道翻译API函数
首先需要先到http://fanyi.youdao.com/openapi?path=data-mode申请APIKEY.然后公布代码: <?php header("Content-T ...
- zabbix服务的布置(脚本)
一,服务端配置 #!/bin/bash#clsn #设置解析 注意:网络条件较好时,可以不用自建yum源# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.al ...
- html头部和底部固定时,中间的内容随屏幕分别率铺满页面
html页面头部和底部有东西时,怎么让内容填充到中间的页面,且去适应不同的电脑分辨率,看代码 <!DOCTYPE html> <html> <head> <m ...
- 通过继承Thread类实现多线程
(1)继承Thread类(2)重写run(方法(3)通过start0方法启动线程 一定的缺点: Java中的类是单继承的,一旦继承了Thread类,就不允许再去继承其它的类 线程和主方法之间的执行顺序 ...
- 【LuoguP5280】[ZJOI2019] 线段树
题目链接 题目描述 略 Sol 显然不能直接暴力模拟. 观察这个东西本质在干什么,就是某一次操作可能进行可能不进行,然后求所有情况下被标记节点总数. 这个显然可以转化为概率问题,每次有二分之一的概率进 ...
- HDU-4292-Food(最大流,Dinic)
链接: https://vjudge.net/problem/HDU-4292 题意: You, a part-time dining service worker in your college's ...
- Quartz--Spring 定时任务
一.quartz核心概念 先来看一张图: scheduler 任务调度器 trigger 触发器,用于定义任务调度时间规则 job 任务,即被调度的任务 misfire 错过的,指本来应该被 ...