1.添加数据

如下,使用insert方法:t_admin_user为数据表名。。其他的是属性。。

  1. $num = Yii::$app->db->createCommand()->insert('t_admin_user', [
  2. 'username' => $this->username,
  3. 'origin_pwd' => trim($info['password']),
  4. 'password' => $this->passwordHash($info['password']),
  5. 'roleid' => $this->roleid,
  6. 'role' => $this->role,
  7. 'ctime' => $this->ctime,
  8. 'salt' => $this->salt,
  9. 'status' => $this->status,
  10. ])->execute();

2.修改数据

如下,使用update方法:t_admin_use为数据表名,'origin_pwd' =>$origin_pwd,'password'=>$password,'salt'=>$salt是要修改的属性,'uid = '.$uid是条件。

  1. $modNum = Yii::$app->db->createCommand()->update('t_admin_user', ['origin_pwd' =>$origin_pwd,'password'=>$password,'salt'=>$salt], 'uid = '.$uid)->execute();

3.批量添加

如下,Message为数据表名。

  1. if($userInfo){
  2. foreach($userInfo as $v){
  3. $rows[] = array(
  4. 'uid' => trim($v['uid']),
  5. 'content' => trim($info['content']),
  6. 'type' => trim($info['type']),
  7. 'create_time' => $time,
  8. 'update_time' => $time,
  9. 'status' => 0
  10. );
  11. }
  12.  
  13. return Yii::$app->db->createCommand()->batchInsert(Message::tableName(), ['uid', 'content','type','create_time','update_time','status'], $rows)->execute();
  14. }

4.批量修改

如下,Message为数据表,'create_time'=>trim($info['create_time'])是条件。。

  1. $model = new Message();
  2. $result = $model->updateAll(['content'=>trim($info['content']),'update_time'=>time()],['create_time'=>trim($info['create_time'])]);

5.插入数据成功后,新增的id

  1. $post->save();
  2. //得到上次插入的Insert id
  3. $id = $post->attributes['id'];
  4. 如此很简单

例子:

  1. public function doGetCreateSalesInfo($info){
  2. $this->name = trim($info['name']);
  3. $this->company_id = 58;
  4. $this->ctime = date('Y-m-d H:i:s',time());
  5. $this->password = md5(trim($info['password']));
  6. $this->phone = trim($info['phone']);
  7. $this->email = trim($info['email']);
  8. $this->admin_id = trim($info['admin_id']);
  9. if($this->save()){
  10. $id = $this->attributes['id'];
  11. $model = self::find()->where(['id'=>$id])->one();
  12. $model->code = 'BLM'.sprintf("%07d",$id);
  13. if($model->save()){
  14. return 1;
  15. }else{
  16. return -1;
  17. }
  18. }
  19. }

6.查找数据信息

  1. $goodsTypes = Yii::app()->getDb()->createCommand()
  2. ->select('type_id, type_name')
  3. ->from('goods_type')
  4. ->where('status=1')->queryAll();

7.连表查询

  1. $goods = Yii::app()->getDb()->createCommand()->from('goods g')
  2.         ->select('g.good_id, g.good_name, gt.type_name, g.price, g.buy_nums, g.commit_nums, g.create_time')
  3.         ->join('goods_type gt', 'g.good_type=gt.type_id')
  4.         ->where('g.`status`=1 and gt.`status`=1')
  5.         ->order('g.create_time desc')
  6.         ->queryAll();

8.删除

  1. $row = Yii::app()->getDb()->createCommand()
  2.         ->delete('goods', "good_id=:good_id", array(
  3.             ':good_id' => $goods_id,
  4.         ));

原生YII2 增删改查的一些操作(非ActiveRecord)的更多相关文章

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

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

  2. Yii2.0高级框架数据库增删改查的一些操作

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

  3. yii2增删改查及AR的理解

    yii2增删改查 // 返回 id 为 1 的客户 $customer = Customer::findOne(1); // 返回 id 为 1 且状态为 *active* 的客户 $customer ...

  4. OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)

    公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...

  5. C# 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  6. MongoDB - 增删改查及聚合操作

    目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...

  7. yii2 增删改查

    自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...

  8. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

  9. HBase数据库增删改查常用命令操作

    最近测试用到了Hbase数据库,新建一个学生表,对表进行增删改查操作,把常用命令贴出来分享给大家~ 官方API:https://hbase.apache.org/book.html#quickstar ...

随机推荐

  1. 谁占用了我的Buffer Pool?--【转】

    转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/11/buffer-pool.aspx 我在做SQL Server 7.0技术支持的时候有客户问我 ...

  2. UML基本架构建模--类的辅助信息

    Organizing Attributes and Operations 组织属性和操作 When drawing a class, you don't have to show every attr ...

  3. .net core json序列化首字符小写和日期格式处理

    打开Startup.cs文件,在ConfigureServices方法中添加如下代码 public void ConfigureServices(IServiceCollection services ...

  4. mosquitto 启动命令

    启动命令 mosquitto [-c config file] [ -d | --daemon ] [-p port number] [-v] -c 后面跟的是启动mosquitto可以调整的参数,比 ...

  5. ACCESS与MSSQL比较:SQL语句关于时间格式使用的注意点

    ACCESS与MSSQL比较:SQL语句关于时间字符串的使用:ACCESS数据库使用 # 来控制时间格式字符串:mssql数据库使用单引号 ' 来控制时间格式字符串.例: ACCESS版本:UPDAT ...

  6. 函数适配器bind2nd 、mem_fun_ref 源码分析、函数适配器应用举例

    一.适配器 三种类型的适配器: 容器适配器:用来扩展7种基本容器,利用基本容器扩展形成了栈.队列和优先级队列 迭代器适配器:(反向迭代器.插入迭代器.IO流迭代器) 函数适配器:函数适配器能够将仿函数 ...

  7. HTTP协议-状态码详解(转)

    原文:http://www.cnblogs.com/lebronjames/archive/2013/01/10/2854981.html HTTP状态码的学习资料到处都有,但是都是理论上讲解.  本 ...

  8. Object-C中的字符串对象1-不可变字符串

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  9. atitit。获取表格的字段注释metadata的原理以及AND 字段表格描述文档方案

    atitit.获取表格的字段注释metadata的原理以及AND 字段表格描述文档方案 1. 通过sql ide navicate获取(推荐)通过meatadata数据库获取 1 2. 通过代码获取 ...

  10. Android Camera API/Camera2 API 相机预览及滤镜、贴纸等处理

    Android Lollipop 添加了Camera2 API,并将原来的Camera API标记为废弃了.相对原来的Camera API来说.Camera2是又一次定义的相机 API,也重构了相机 ...