初学YII, 整理了一些YII数据库的相关操作,  共同学习,共同进步。

一、查询数据集合

 //1.该方法是根据一个条件查询一个集合
$admin=Admin::model()->findAll($condition,$params);
$admin=Admin::model()->findAll("username=:name",array(":name"=>$username)); //2. findAllByPk(该方法是根据主键查询一个集合,可以使用多个主键)
$admin=Admin::model()->findAllByPk($postIDs,$condition,$params);
$admin=Admin::model()->findAllByPk($id,"name like :name and age=:age",array(':name'=>$name,'age'=>$age));
$admin=Admin::model()->findAllByPk(array(1,2)); //3.findAllByAttributes (该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面)
$admin=Admin::model()->findAllByAttributes($attributes,$condition,$params);
$admin=Admin::model()->findAllByAttributes(array('username'=>'admin')); //4.findAllBySql (该方法是根据SQL语句查询一个数组)
$admin=Admin::model()->findAllBySql($sql,$params);
$admin=Admin::model()->findAllBySql("select * from admin where username like :name",array(':name'=>'%ad%'));

二、查询对象

 //根据主键查询出一个对象,如:findByPk(1);
$admin=Admin::model()->findByPk($postID,$condition,$params);
$admin=Admin::model()->findByPk(1); //根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据
$row=Admin::model()->find($condition,$params);
$row=Admin::model()->find('username=:name',array(':name'=>'admin')); //该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据
$admin=Admin::model()->findByAttributes($attributes,$condition,$params);
$admin=Admin::model()->findByAttributes(array('username'=>'admin')); //该方法是根据SQL语句查询一组数据,他查询的也是第一条数据
$admin=Admin::model()->findBySql($sql,$params);
$admin=Admin::model()->findBySql("select * from admin where username=:name",array(':name'=>'admin')); //拼一个获得SQL的方法,在根据find查询出一个对象
$criteria=new CDbCriteria;
$criteria->select='username'; // only select the 'title' column
$criteria->condition='username=:username';
$criteria->params=array(":username=>'admin'");
$criteria->order = "id DESC";
$criteria->limit = "3";
$post=Post::model()->find($criteria); // $params isnot needed

三、查询满足条件的记录个数

 //该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字
$n=Post::model()->count($condition,$params);
$n=Post::model()->count("username=:name",array(":name"=>$username)); //该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字
$n=Post::model()->countBySql($sql,$params);
$n=Post::model()->countBySql("select * from admin where username=:name",array(':name'=>'admin')); //该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到
$exists=Post::model()->exists($condition,$params);
$exists=Post::model()->exists("name=:name",array(":name"=>$username));

四、添加

 $admin = new Admin;
$admin->username = $username;
$admin->password = $password;
if($admin->save() > 0){ echo "添加成功"; }else{ echo "添加失败"; }

五、修改

 Post::model()->updateAll($attributes,$condition,$params);
$count =Admin::model()->updateAll(array('username'=>'11111','password'=>'11111'),'password=:pass',array(':pass'=>'1111a1'));
if($count > 0){ echo "修改成功"; }else{ echo "修改失败"; } //$pk主键,可以是一个也可以是一个集合,$attributes是要修改的字段的集合,$condition条件,$params传入的值
Post::model()->updateByPk($pk,$attributes,$condition,$params);
$count =Admin::model()->updateByPk(1,array('username'=>'admin','password'=>'admin'));
$count =Admin::model()->updateByPk(array(1,2),array('username'=>'admin','password'=>'admin'),'username=:name',array(':name'=>'admin'));
if($count>0){ echo "修改成功"; }else{ echo "修改失败"; } Post::model()->updateCounters($counters,$condition,$params);
$count=Admin::model()->updateCounters(array('status'=>1),'username=:name',array(':name'=>'admin'));
if($count > 0){ echo "修改成功"; }else{ echo "修改失败"; }
//array('status'=>1)代表数据库中的admin表根据条件username='admin',查询出的所有结果status字段都自加1

六、删除

 //deleteAll
Post::model()->deleteAll($condition,$params);
$count = Admin::model()->deleteAll('username=:name and password=:pass',array(':name'=>'admin',':pass'=>'admin'));
$count = Admin::model()->deleteAll('id in("1,2,3")');//删除id为这些的数据
if($count>0){echo "删除成功"; }else{ echo "删除失败"; } //deleteByPk
Post::model()->deleteByPk($pk,$condition,$params);
$count = Admin::model()->deleteByPk(1);
$count =Admin::model()->deleteByPk(array(1,2),'username=:name',array(':name'=>'admin'));
if($count>0){ echo "删除成功"; }else{ echo "删除失败"; }

YII数据库增删查改操作的更多相关文章

  1. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  2. 利用dbutils工具实现数据的增删查改操作(dbutis入门)

    一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...

  3. PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)

    php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...

  4. Mybatis基础配置及增删查改操作

    一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...

  5. 在Eclipse上实现简单的JDBC增删查改操作

    在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图  编写Product类 public clas ...

  6. SSM框架-MyBatis框架数据库的增删查改操作

    话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:

  7. C++连接sqlite数据库的增删查改操作

    这个代码是接着上次说的,要用VS2013操作数据库,首先要配置好环境,创建好数据库表等. 不明白的翻我前面2篇看看~~~ 关于前面的用到的goto 语句,这个我也是参考其他博主写的,现在我注释掉了,毕 ...

  8. go iris xorm包使用(sqlite3数据库增删查改)

    官网https://studyiris.com/example/orm/xorm.html例子,稍做修改 1.我是win64,但没有遇到mingw问题,应该是之前安装过gcc环境,参考:测试一下rob ...

  9. django models进行数据库增删查改

    在cmd 上运行 python manage.py shell   引入models的定义 from app.models import  myclass   ##先打这一行    ------这些是 ...

随机推荐

  1. python学习的一些感悟

    首先声明,这里用到的库是在coursera上学习时,老师建立的一个库 #timer import simplegui import random # global state message = &q ...

  2. 【Java】Java Socket编程(1)基本的术语和概念

    计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础.那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因.Java语言从一开始就是为了互联网而设计的,它为实 ...

  3. Communication System

    poj1018:http://poj.org/problem?id=1018 题意:某公司要建立一套通信系统,该通信系统需要n种设备,而每种设备分别可以有m1.m2.m3.....mn个厂家提供生产, ...

  4. Swordfish

    zoj1203:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1203 题意:给定平面上N个城市的位置,计算连接这N个城市所 ...

  5. 转:Lua简明教程

    需要注意的是:lua中的变量如果没有特殊说明,全是全局变量,那怕是语句块或是函数里. 这里很奇怪,为什么在函数内部声明的变量默认也是global的呢? 函数的返回值 和Go语言一样,可以一条语句上赋多 ...

  6. POJ-3468-A Simple Problem with Integers(区间更新,求和)-splay或线段树

    区间更新求和 主要用来练习splay树区间更新问题 //splay树的题解 // File Name: 3468-splay.cpp // Author: Zlbing // Created Time ...

  7. IIS6.0服务器搭建网站无法访问解决方法

    IIS6.0服务器搭建网站无法访问解决方法     IIS6.0服务器搭建网站无法访问解决方法很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的, ...

  8. qt项目转vs项目

    Qt creator是一个非常好用的跨平台项目管理工具和集成开发环境(IDE).但是对于我自己来说Visual Studio依然是我最顺手的开发工具,由于Qt使用了moc,这样要是自己管理Visual ...

  9. Node.js真的有高并发优势吗?看看Node.js和Tomcat的并发测试结果

    同一套业务逻辑,实现一个webservice中间接口,中间涉及memcached和mogodb的一些操作.分别在Node.js和JAVA平台实现,java代码部署在Tomcat 7.0上,用Apach ...

  10. SRM 504.5(2-1000pt)

    DIV2 1000pt 题意:一群人排队,每次操作由要骰子决定,只要没有人中奖,游戏就不结束.若摇骰子摇出4,则队列第一个人中奖:否则,若摇的是奇数,则第一个人排队到队伍末尾去:否则,第一个人出局.若 ...