YII数据库增删查改操作

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

一、查询数据集合

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

二、查询对象

 1 //根据主键查询出一个对象,如:findByPk(1);
 2 $admin=Admin::model()->findByPk($postID,$condition,$params);
 3 $admin=Admin::model()->findByPk(1);
 4
 5 //根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据
 6 $row=Admin::model()->find($condition,$params);
 7 $row=Admin::model()->find(‘username=:name‘,array(‘:name‘=>‘admin‘));
 8
 9 //该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据
10 $admin=Admin::model()->findByAttributes($attributes,$condition,$params);
11 $admin=Admin::model()->findByAttributes(array(‘username‘=>‘admin‘));
12
13 //该方法是根据SQL语句查询一组数据,他查询的也是第一条数据
14 $admin=Admin::model()->findBySql($sql,$params);
15 $admin=Admin::model()->findBySql("select * from admin where username=:name",array(‘:name‘=>‘admin‘));
16
17 //拼一个获得SQL的方法,在根据find查询出一个对象
18 $criteria=new CDbCriteria;
19 $criteria->select=‘username‘; // only select the ‘title‘ column
20 $criteria->condition=‘username=:username‘;
21 $criteria->params=array(":username=>‘admin‘");
22 $criteria->order = "id DESC";
23 $criteria->limit = "3";
24 $post=Post::model()->find($criteria); // $params isnot needed  

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

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

四、添加

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

五、修改

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

六、删除

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

YII数据库增删查改操作

时间: 2024-08-07 23:08:04

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

Sqlite数据库增删查改操作

1.SqliteOpenHelper为数据库抽象类,需创建一个类继承他,其中有onCreate创建数据库的抽象方法和onUpgrade升级数据库方法(一般用不上). 1 //创建数据库的类 2 //SQLiteOpenHelper抽象类 onCreate和onUpgrade抽象方法 3 public class MySqliteHelper extends SQLiteOpenHelper { 4 5 //新建数据库以及表 6 private String SqlCpData="create t

数据库的连接与简单的ATM增删查改操作

连接数据库有两种方式,直连和桥连,这里作者只讲一下普遍的直连,桥连读者想知道请自行百度 首先要有驱动软件,笔者的工具很旧 在你的java项目里面创建一个文件夹lib,将jar文件复制到里面,右键点击jar文件→Build Path→Configure Build Path→ 添加找到lib目录下的jar文件 确定 则会出现奶瓶,这样驱动就弄好的,下面开始连接 请注意里面所有的包都是java.sql下的 ,其中root是你的mysql账号,610321520是你的mysql的密码,3306是mys

django models进行数据库增删查改

引入models的定义 from app.models import  myclass class  myclass(): aa =  models. CharField (max_length=None) bb =  models. CharField (max_length=None) def __unicode__(self): return u'%s %s' %(aa,bb) 增 添加一行数据1 add = myclass(aa='wahaha',bb='hahawa' ) add.sa

myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)

在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 如果我要调用mapper文件,就去拿到names

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

官网https://studyiris.com/example/orm/xorm.html例子,稍做修改 1.我是win64,但没有遇到mingw问题,应该是之前安装过gcc环境,参考:测试一下robotgo自动化操作,顺便解决了原来的mingw版本中只有gcc,没有g++的问题 2.将其中的字段名.字段内容改为中文,并按id访问数据表中的行,没遇到乱码问题,很好. 代码如下: //包主显示如何在您的Web应用程序中使用orm //它只是插入一列并选择第一列. package main impo

myBatis 实现用户表增删查改操作&lt;方法2 加入接口&gt;(最终版)

这2种方法的区别:1.添加接口 2.运用接口来实现 其他的都一样 添加接口 //接口的名字和xml的名字一样,这样xml中的namespace就不用改 public interface UserMapper { //接口名的方法名一定要和xml中的id名一样 public int count(); public void add(User user); public void update(User user); public void delete(User user); public Lis

基础入门_Python-模块和包.深入SQLAlchemy之玩转各种增删查改操作?

增加数据: # 单行数据(from sqlalchemy import ...) conn = engine.connect() # 方式一: 调用表对象的insert ins = cookies.insert().values(     cookie_name='chocolate chip',     cookie_recipe_url='http://some.aweso.me/cookie/recipe.html',     cookie_sku='CC01',     quantity

java对链表增删查改操作API

从c++方向搞点java副业.结果在静态链表这里绊了一跤.感谢巨人们的肩膀重见天日. 希望后来人少走些弯路. 废话少说,直接贴代码: 1.创建链表的节点类 public class Node { private Node node; private Object eleme; public void setEleme(Object eleme) { this.eleme = eleme; } public Node(){ this.eleme = null;node = null; } publ

laravel 数据库 - 增删查改

//查询public function select(){ /** 数据表 CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL, `sex` varchar(255) DEFAULT '1', `create_at` int(11) DEFAULT '0', `score` int(3) DEFAULT