yii2 ajax增删改查,Yii2 中常用的增删改查操作总结

2023-11-02

一、新增

1、使用save()

$model = newUser();$model->name = 'test';$model->phone = '13000000000';$model->email = '123456@qq.com';$model->save();

2、使用createCommand 原生sql

$sql = "insert into user (name, phone, email) values ('test', '13000000000', '123456@qq.com')";

Yii::$app->db->createCommand($sql)->execute();

3、使用createCommand insert

Yii::$app->db->createCommand()->insert('user',['name' => 'test',

'phone' => '13000000000',

'email' => '123456@qq.com'])->execute();

4、批量插入

Yii::$app->db->createCommand()->batchInsert('user', ['name', 'phone', 'email'],[

['test1', '13000000000', '123456@qq.com'],['test2', '13000000001', '234567@qq.com']

])->execute();

5、使用save()并校验参数正确性

$data =['name' => 'test',

'phone' => '13000000000',

'email' => '123456@qq.com'];$model = newUser();//将数据填充到模型的属性中

$model->load($data, '');//等效于下面这样:

// $model->attributes = $data;

// 或者

// $model->setAttributes($data);

if ($model->validate()) {//通过验证

$model->save();

}else{//验证失败: $errors 是一个包含错误信息的数组

$errors = $model->errors;

}

二、删除

1、使用delete()

$user = User::find()->where(['name' => 'test'])->one();$user->delete();

2、使用deleteAll()批量删除

User::deleteAll(['name' => 'test']);

3、使用createCommand delete()

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

4、使用createCommand 原生sql

$sql = "delete from user where name = 'test'";

Yii::$app->db->createCommand($sql)->execute();

三、更新

1、使用update()

$user = User::find()->where(['name' => 'test'])->one();$user->phone = '13100000000';$user->update(); //或者 $user->save();

2、使用updateAll()

User::updateAll(['phone' => '13100000000'], ['name' => 'test']);

3、使用createCommand update()

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

4、使用createCommand 原生sql

$sql = "update user set phone = '13100000000' where name = 'test'";

Yii::$app->db->createCommand($sql)->execute();

四、查询

1、使用model

//查询一条记录

User::find()->select(['name', 'phone', 'email'])->where(['phone' => '13000000000'])->andWhere(['like', 'name', 'test'])->one();//查询一条记录数组返回

User::find()->where(['name' => 'test'])->asArray()->one();//查询所有记录

User::find()->where(['name' => 'test'])->all();//查询所有记录数组返回

User::find()->where(['name' => 'test'])->asArray()->all();

2、使用createCommand

//查询一条记录

Yii::$app->db->createCommand("select * from user where name = :name and phone = :phone")->bindValues([':name' => 'test', ':phone' => '13000000000'])->queryOne();//查询所有记录

Yii::$app->db->createCommand("select * from user where name = :name and phone = :phone")->bindValues([':name' => 'test', ':phone' => '13000000000'])->queryAll();

3、使用yii\db\Query()

(new \yii\db\Query())->from('user')->where(['name' => 'test'])->all();

4、子查询

$subQuery = (new \yii\db\Query())->select(['id'])->from('user')->where(['like', 'name', 'test'])->all();

(new \yii\db\Query())->from('user')->where(['in', 'id', $subQuery])->all();

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yii2 ajax增删改查,Yii2 中常用的增删改查操作总结 的相关文章

  • offsetTop、offsetParent、scrollTop以及vue如何实现左右联动效果

    offsetTop 元素到offsetParent顶部的距离 offsetParent 距离元素最近的一个具有定位的祖宗元素 relative absolute fixed 若祖宗都不符合条件 offsetParent为body 如下图所示
  • OrangePi 4b Lts GPIO最高输出频率测试

    根据示波器显示的值 在写入高低电平各有一个usleep 1 时可以输出稳定10kHz的方波 但是10k每段有50us 不知道usleep 1 为什么会变成50us 可能是digitalWrite稳定时间比较长 直接死循环里digitalWr
  • 学生管理系统主要界面

    目录 1 登录界面 login 2 信息管理界面 main 3 页面展示 本篇文章主要介绍学生管理系统主要界面 至于各界面中所含代码均基于Servlet 创建 使用 生命周期 http协议 http请求 http响应 过滤器 Ajax 异步
  • gtest编译和使用

    最近想总结一下gtest的使用 方便后面查阅 1 编译安装googletest 2 编写测试用例 3 编译测试和调试代码 1 编译安装googletest github上下载googletest release 1 10 0 这里需要注意该
  • 关于STM32按键实验中连接按键的GPIO管脚是配置为上拉输入还是下拉输入的理解

    关于STM32按键实验中连接按键的GPIO管脚是配置为上拉输入还是下拉输入的理解 以正点原子按键输入实验为例 1 按键KEY0 lt gt PE4 按键另一端接GND 2 按键KEY1 lt gt PE3 按键另一端接GND 3 按键WK
  • 【力扣】最接近的三数之和

    给你一个长度为 n 的整数数组 nums 和 一个目标值 target 请你从 nums 中选出三个整数 使它们的和与 target 最接近 返回这三个数的和 假定每组输入只存在恰好一个解 示例 1 输入 nums 1 2 1 4 targ
  • 生命的进程

    比我们活着时间长的人自然能呼吸到更多的空气 也必将有我们所不了解的生活阅历和技能 尊重他人 就是成就自己
  • VulnHub-Sick0s1.2

    目录 简介 信息收集 漏洞发现 漏洞利用 权限提升 总结 简介 该靶机是Sick0s系列的第二个靶机 总体来说不难 提权那里需要花点时间 毕竟linpeas脚本没有将计划任务标红 总之我个人尝试了很久内核提权 浪费了大量时间 而且不知道是w
  • C++函数参数的默认值

    一 函数参数的默认值 1 函数参数的默认值就是说在声明函数或者定义函数的时候直接在参数后给赋值 这样在函数调用的时候调用方可以不用再给传值 它会默认使用它的默认值 错误实例 在给函数参数赋默认值的时候要注意以下几点 1 参数默认值必须从右向
  • GET--POST的同步/异步请求

    同步请求的过程不能进行其他操作 而异步请求相当于开了一个支路 可以进行其他操作 但是请求的结果得返回到主线程 GET同步请求 NSString strURL http api map baidu com place v2 search qu
  • 客户端下载

    include
  • 设计模式的 C++ 实现---中介者模式

    前文回顾 单例模式 一 单例模式 二 观察者模式 简单工厂模式 工厂方法模式 一 工厂方法模式 二 抽象工厂模式 一 抽象工厂模式 二 原型模式 外观模式 前言 中介者模式主要用于多个对象之间的交互 所谓交互就是会互相调用对方的接口方法 中
  • JDK1.8 下载及安装

    JDK 下载 官网下载地址 https www oracle com java technologies javase downloads html 打开网页后找到 Java SE 8u241 点击 JDK Download 选择电脑对应的
  • Grafana插件Plugin中文汉化

    示例Github地址 汉化三方插件 前面说过汉化Grafana的工作 目前在7 2 1上面 大部分已经完成 细节继续完善 今天考虑在第三方插件上做一些汉化 点到插件一看全是英文感觉很突出 领导看到了也不爽啊 找个软的捏 饼图在展示方面比较直
  • C++ OJ习题练习(十)设计管理出版物的类

    Problem Description 某出版社发行图书和光盘 利用继承设计管理出版物的类 要求如下 建立一个基类Publication存储出版物的标题title 出版物名称name 单价price及出版日期date 用Book和CD类分别
  • Horizon Client 配置设置和命令行选项

    Horizon Client 配置设置和命令行选项 Twitter FaceBook LinkedIn Weibo 添加到库 添加到库 RSS 下载 PDF 发送反馈 反馈 编辑 评论 更新时间 2022年10月05日 选择的产品版本 VM
  • Hexo博客优化之Next主题美化

    前言 有了前面几篇博客的介绍 我们就可以很容易的搭建并编辑我们的博客了 不过既然是属于自己的博客网站 自然也就想让其更加美观 更有意思 所以呢我下面介绍一下Hexo博客的主题美化操作 1 Next主题 Hexo博客支持很多主题风格 其中Ne
  • error trying to connect: 远程主机强迫关闭了一个现有的连接。 (os error 10054)

    今天运行自动化测试的代码时 出现了这个问题 检索了一下 发现是chrome版本更新 导致驱动chromedriver不适配导致的 后来找了淘宝镜像 发现只有到114 还是不能使用 最后还是找到了 提供一下链接 不知道需不需要科学上网 我是开
  • C语言 看图说话-指针类型的扩展——数组指针

    1 指针数组是什么 答 指针类型的数组 2 数组指针是什么 答 指向数组的指针 它是扩展的指针类型 3 数组指针与基本类型指针的区别 答 在这个图片中 第一行就为基本类型的指针 不难看出 数组指针所指向的空间更大 再看后两行 前边为指针数组

随机推荐

  • Matlab读取CSV文件,并进行矩阵处理

    我们在进行科研时会碰到仪器生成的数据为 csv的文件 这时候使用matlab进行读取处理 核心思想是对读取到的数据按照矩阵进行处理 处理过程如下 第一步 filename D csv 读入csv数据 截取数值部分 诀窍 把矩阵想象成矩形 左
  • 在Linux(Ubuntu20.04)上编译Chromium,附相关命令学习解释

    以下内容基于Google官方文档 系统要求 8GB 以上内存 建议 16GB 以上 实测 11GB 可以稳定 build 说明见下文 100GB 以上空闲空间 实测 chromium 文件夹最少需要 65GB 已安装 Python3 和 G
  • CAN基础概念

    文章目录 目的 控制器 收发器 总线 帧格式 CAN2 0和CAN FD 波特率与采样点 工作模式 总结 目的 CAN是非常常用的一种数据总线 被广泛用在各种车辆系统中 大多数时候CAN的控制器和收发器干了比较多的工作 从而对于写代码使用来
  • 手动搭建webase(2)——节点管理服务

    前提条件 拉取代码 git clone https github com WeBankFinTech WeBASE Node Manager git 若因网络问题导致长时间下载失败 可尝试以下命令 git clone https gitee
  • 在uni-app中查询dom元素节点信息

    查询节点信息的对象 selectorQuery in component 将选择器的选取范围更改为自定义组件 component 内 返回一个 SelectorQuery 对象实例 初始时 选择器仅选取页面范围的节点 不会选取任何自定义组件
  • LableMe安装及初步使用(Mac也适用)

    环境 mac OS anaconda3 1 首先安装anaconda3 推荐此网站 下载较快https mirrors tuna tsinghua edu cn anaconda archive 下载完毕安装即可 本人之前就安装过了 在此就
  • vscode 终端无法执行pip

    1 在Windows应用中找到Windows PowerShell 右键以管理员运行 2 在命令框输入 set ExecutionPolicy RemoteSigned 回车 3 根据需要选择 这里我选择的是A 成功解决了问题 ps pow
  • Spring Boot学习之旅:(四)springboot 整合 fastjson

    springboot 默认使用的 jackson 但是听说某宝的fastjson 性能很好 而且平时用的习惯 所以来整合一下 首先在pom 中导入依赖
  • QT登陆注册界面练习

    一 界面展示 二 主要功能界面代码 include widget h include ui widget h Widget Widget QWidget parent QMainWindow parent ui new Ui Widget
  • 【Shell牛客刷题系列】SHELL13 去掉所有包含this的句子:awk与gawk命令的进阶使用

    该系列是基于牛客Shell题库 针对具体题目进行查漏补缺 学习相应的命令 刷题链接 牛客题霸 Shell篇 该系列文章都放到专栏下 专栏链接为 专栏 Linux 欢迎关注专栏 本文知识预告 首先学习了用于模式扫描和处理语言的gawk命令 然
  • Django 静态文件

    静态文件 1 什么是静态文件 对于前端已经写好了的文件 我们只是拿过来使用 那么这些文件都可以称之为叫 静态文件 静态文件可以是 bootstrap一类的前段框架 已经写好了的图片 css js 静态文件默认全都放在static文件夹下 s
  • vue使用Monaco editor

    1 项目中使用monaco editor首先要安装 npm install monaco editor S 2 在组件中引用并使用 初始化 更改内容 销毁
  • day 7

    封装一个学生的类 定义一个学生这样类的vector容器 里面存放学生对象 至少3个 再把该容器中的对象 保存到文件中 再把这些学生从文件中读取出来 放入另一个容器中并且遍历输出该容器里的学生 include
  • windows系统中用Python调用linux系统shell脚本

    一 windows系统先安装 1 安装python3 5 2 安装paramiko pip install paramiko 3 卸载cryptography 2 5 python m pip uninstall cryptography
  • linux+rwx+权限值,linux权限管理:rwx

    权限管理简介 r w x 对文件及目录进行权限管理 从而达到文件及目录管理 1 rwx对于文件而言 r 可读 可以使用类似cat等命令查看文件内容 w 可写 可以编辑或删除此文件 x 可执行 exacutable 可以命令提示符下当作命令提
  • 华为机试题70-矩阵乘法计算量估算

    描述 矩阵乘法的运算量与矩阵乘法的顺序强相关 例如 A是一个50 10的矩阵 B是10 20的矩阵 C是20 5的矩阵 计算A B C有两种顺序 AB C 或者 A BC 前者需要计算15000次乘法 后者只需要3500次 编写程序计算不同
  • 新手必看!最简单的MySQL数据库详解

    本篇文章主要跟大家介绍的是详解MySQL数据库 对于新手来说帮助很大的 而且MySQL是最流行的关系型数据库管理系统 在web应用方面 MySQL也是最好的RDBMS应用软件之一 因此 感兴趣的朋友记得要看完 是什么数据库 数据库 Date
  • 微信商户平台结算周期T+1是什么意思

    我们在商户平台的管理后台 有的时候 用户支付了 可是却没有看到有资金信息 这个一般是因为您的账户类似的T 1的原因 那结算周期T 1是什么意思呢 通俗的理解就是 交易日的次日 T就是today 今天的意思 的第一个字母的大写 T 1 T 2
  • C语言中的static的用法(超级详细)

    作者 云小逸 个人主页 云小逸的主页 码云 云小逸 YunXiaoYi003 motto 要敢于一个人默默的面对自己 强大自己才是核心 不要等到什么都没有了 才下定决心去做 种一颗树 最好的时间是十年前 其次就是现在 学会自己和解 与过去和
  • yii2 ajax增删改查,Yii2 中常用的增删改查操作总结

    一 新增 1 使用save model newUser model gt name test model gt phone 13000000000 model gt email 123456 qq com model gt save 2 使