Yii框架下数据操作-model、对象

 1 ==================查询==================
 2
 3 条件-绑定参数-返回多个对象
 4 $admin = Admin::model()->findAll($condition, $params);
 5 $admin = Admin::model()->findAll("username = :name", [":name" => $username]);
 6 $admin = Admin::model()->findAll("status = 1 ORDER BY id DESC limit 10");
 7
 8 条件-绑定参数-返回一个对象
 9 $admin = Admin::model()->find($condition, $params);
10 $admin = Admin::model()->find(‘username = :name‘, ‘:name‘=>‘admin‘);
11
12
13 主键-条件-绑定参数-返回多个对象
14 $admin = Admin::model()->findAllByPk($postIDs, $condition, params);
15 $admin = Admin::model()->findAllByPk($id,"name like :name and age=:age",array(‘:name‘=>$name,‘age‘=>$age));
16 $admin = Admin::model()->findAllByPk(array(1,2));
17
18 主键-条件-绑定参数-返回一个对象
19 $admin = Admin::model()->findByPk($postID, $condition, $params);
20 $admin = Admin::model()->findByPk(1);
21
22 条件数组-条件-绑定参数-返回多个对象
23 $admin = Admin::model()->findAllByAttributes($attributes, $condition, $params);
24 $admin = Admin::model()->findAllByAttributes(array(‘username‘ => ‘admin‘));
25
26 条件数组-条件-绑定参数-返回一个对象
27 $admin = Admin::model()->findByAttributes($attributes, $condition, $params);
28 $admin = Admin::model()->findByAttributes(array(‘username‘ => ‘admin‘));
29
30 sql语句-绑定参数-返回多个对象
31 $admin = Admin::model()->findAllBySql($sql, $params);
32 $admin = Admin::model()->findAllBySql("select id from admin where username = :name", [‘:name‘=>‘%ad%‘]);
33
34 sql语句-绑定参数-返回一个对象
35 $admin = Admin::model()->findBySql($sql, $params);
36 $admin = Admin::model()->findBySql("select * from admin where username=:name",array(‘:name‘=>‘admin‘));
37
38 $criteria = new CDbCriteria;
39 $criteria->select = ‘id‘;//查询的字段
40 $criteria->condition = ‘nmae = :name‘;//有且只有一个条件
41 $criteria->params = [‘:name‘ => ‘admin‘];//绑定参数
42 $criteria->join = ‘xxx‘;//连接表
43 $criteria->with = ‘xxx‘;//调用relations
44 $criteria->order = ‘id desc‘;//指定字段排序
45 $criteria->offset = 1;//起始量,通常和limit配合使用
46 $criteria->limit = 3;//指定查询数据量
47 $criteria->group = ‘xxx‘;//分组
48 $criteria->having = ‘xxx‘;
49 $criteria->distinct = false;//是否唯一查询
50 $criteria->addCondition(‘id = 1‘);//id = 1
51 $criteria->addCondition(‘id = 1‘, ‘or‘);//or id = 1
52 $criteria->addInCondition(‘id‘, [1, 2, 3]);//id in (1,2,3)
53 $criteria->addNotInCondition(‘id‘, [1, 2, 3])//id not in (1,2,3)
54 $criteria->addSearchCondition(‘name‘, ‘你好‘);//name like ‘%你好%‘
55 $criteria->addBetweenCondition(‘id‘, 1, 10);//id between 1 and 10
56 $criteria->compare(‘id‘, 1);//如果第二个参数是数字,则按照addCondition处理
57 $criteria->compare(‘id‘, [1, 2, 3]);//如果第二个参数是数组,则按照addInCondition处理
58 $admin = Admin::model()->find($criteria);
59
60 条件-绑定参数-返回数据记录数
61 $count = Admin::model()->count($condition, $params);
62 $count = Admin::model()->count(‘name = "你好"‘);
63 $count = Admin::model()->count(‘name = :name‘, [‘:name‘ => ‘你好‘]);
64
65 sql语句-绑定参数-返回数据记录数
66 $count = Admin::model()->countBySql($sql, $params);
67 $count = Admin::model()->countBySql(‘select count(*) from admin where name = "你好"‘);
68 $count = Admin::model()->countBySql(‘select count(*) from admin where name = :name‘, [‘:name‘ => ‘你好‘]);
69
70 条件-绑定参数-返回true或false
71 $exists = Admin::model()->exists($condition, $params);
72 $exists = Admin::model()->exists(‘name = "你好"‘);
73 $exists = Admin::model()->exists(‘name = :name‘, [‘:name‘ => ‘你好‘]);
74
75 ==================新增==================
76 $admin = new Admin;
77 $admin->username = $username;
78 $admin->time = time();
79 $save = $admin->save();//需要指定全部字段,否则会返回false
80
81 ==================修改==================
82 Admin::model()->updateAll($attributes, $condition, $params);//$attributes是要修改的字段的集合,$condition条件,$params传入的值
83 $update = Admin::model()->updateAll([‘name‘ => ‘你好吗‘], ‘id = :id‘, [‘:id‘ => 1]);//将id = 1的name的值修改成‘你好吗’
84
85 Admin::model()->updateByPk($pk, $attributes, $condition, $params);//$pk主键,可以是一个也可以是一个集合,$attributes是要修改的字段的集合,$condition条件,$params传入的值
86 $update = Admin::model()->updateByPk(1, [‘name‘ => ‘你好吗‘]);
87 $update = Admin::model()->updateByPk([1, 2], [‘name‘ => ‘你好吗‘]);
88
89 Admin::model()->updateCounters($counters, $condition, $params);
90 $update = Admin::model()->updateCounters([‘tel‘ => 1], ‘id = :id‘, [‘:id‘ => 1]);//将id = 1的tel字段自加1,类似set tel = tel + 1,如果是负数则自减1,set tel = tel - 1;
91
92 ==================删除==================
93 Admin::model()->deleteAll($condition, $params);
94 $delete = Admin::model()->deleteAll(‘id = :id‘, [‘:id‘ => 1]);//删除id = 1的数据
95 $delete = Admin::model()->deleteAll(‘id = 1‘);//删除id = 1的数据
96
97 Admin::model()->deleteByPk($pk, $condition, $params);
98 $delete = Admin::model()->deleteByPk(1, ‘name = :name‘, [‘:name‘ => ‘你好‘]);//删除主键id = 1 and name = ‘你好‘的数据,如果id = 1但是name != ‘你好‘会删除失败,所以这个方法一般只需要传主键的值就好了

原文地址:https://www.cnblogs.com/firstlady/p/11383721.html

时间: 2024-11-07 04:35:44

Yii框架下数据操作-model、对象的相关文章

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因

YII框架中可以使用foreach遍历对象以及可以使用数组形式直接访问对象的原因在YII框架的使用过程中,我们可以使用foreach直接遍历findAll等方法返回的对象的属性为什么呢?其实这与CModel实现的接口相关,接下来我们看下其实现的整个过程对于一个我们定义的model,它会继承虚类CActiveRecord,CActiveRecord类继承于CModel,如下所示: class special extends CActiveRecord { } abstract class CAct

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建 选择Linux桌面环境Deepin2014.1下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的. 先说vim和DBGp插件. Deepin2014.1简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了.可以节省不少步骤.这里提供一个vim的配

yii框架下使用bootstrap时,判断checkbox、radioButtonList和dropDownList的js方法

1.首先设置button按钮的id: <span style="font-size:14px;">'htmlOptions'=>array('id'=>'buttonStateful')</span> 例如: <span style="font-size:14px;"> <?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=

SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显

在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/

Yii框架下CDataColumn中filter应用+jeditable+pager样式定义应用实例

应用环境在Yii1.1框架下,CDataColumn的filter应用给CGridView带来了极大的方便,可以根据某一字段的值来过滤显示现有的表格数据,这是个重要的功能,可惜一来Yii的中文资料实在不够详细,二来百度出的东西重复的太多,有用的很少.参考很多英文资料后,我把自己写的实例贴出来供大家参考,如果有必要我以后还会陆续贴一些Yii文章出来. filter首先要有自己的数据源,这个可以是当前表格使用的model,也可以是其他一些array,这个实例中我使用了当前model,CGridVie

Yii框架下使用redis做缓存,读写分离

Yii框架中内置好几个缓存类,其中有memcache的类,但是没有redis缓存类,由于项目中需要做主从架构,所以扩展了一下: /** * FileName:RedisCluster * 配置说明 * 配置为1主多从 或者 1个独立的服务器 * 写往主的里面写 * 读是从从的里面读 * 'class'=>'RedisCache', * 'servers'=>array( * array( * 'host'=>'IP1', * 'port'=>'6380', * 'master'=&

yii框架定时任务的操作

在项目根目录里找到console(操作台,控制台)文件夹,在console文件夹里建一个TestController文件,如图所示: 文件内部写如下内容: 切记该文件继承的Controller一定是 yii\console\Controller 切记该文件继承的Controller一定是 yii\console\Controller 切记该文件继承的Controller一定是 yii\console\Controller 然后打开cmd模拟定时任务操作 之后可以将自己手动输入的部分,在服务器上编

yii框架下使用redis

1 首先获取到 yii2-redis-master.zip 压缩包 下载地址https://github.com/yiisoft/yii2-redis/archive/master.zip 2 把下载的扩展文件放到vendor/yiisoft/下,命名为yii2-redis 3 修改vender/yiisoft/下的extensions.php,加入redis扩展 'yiisoft/yii2-redis' => array ( 'name' => 'yiisoft/yii2-redis', '