Yii Framework2.0开发教程(6)数据库mysql--ActiveRecord
来源:互联网 发布:手机处理器优化 编辑:程序博客网 时间:2024/05/08 02:33
Active Record(活动记录,以下简称AR)提供了一个面向对象的接口,用以访问数据库中的数据。
一个AR 类关联一张数据表,每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性Attribute)映射到数据行的对应列。
一条活动记录(AR对象)对应数据表的一行,AR对象的属性则映射该行的相应列。
您可以直接以面向对象的方式来操纵数据表中的数据,妈妈再不用担心我需要写原生 SQL 语句啦。
编辑models/Country.php
<?php namespace app\models; use yii\db\ActiveRecord;//你不用在里面写任何代码。只需要像现在这样,Yii 就能根据类名去猜测对应的数据表名。class Country extends ActiveRecord{}
或者
<?php namespace app\models; use yii\db\ActiveRecord;//你不用在里面写任何代码。只需要像现在这样,Yii 就能根据类名去猜测对应的数据表名。class Country extends ActiveRecord{//@return string 返回该AR类关联的数据表名public static function tableName(){return 'country';}}
编辑views/zhyoulun/helloworld.php
<?php$country = new \app\models\Country;$country->code = 'ZZ';$country->name = 'Youlun';$country->population = '1';$country->save();?>
访问网页http://localhost/basic/web/index.php?r=zhyoulun/helloworld,可以看到数据库中多了一条记录
查询数据
// 获取 country 表的所有行并以 name 排序$countries = Country::find()->orderBy('name')->all();echo '<table border="1">';for($i=0;$i<count($countries);$i++){echo '<tr>';echo '<td>'.$countries[$i]['code'].'</td>';echo '<td>'.$countries[$i]['name'].'</td>';echo '<td>'.$countries[$i]['population'].'</td>';echo '</tr>';}echo '</table>';
// 用原生 SQL 语句检索客户:$sql = 'SELECT * FROM customer';$customers = Customer::findBySql($sql)->all();
以数组形式获取数据
// 以数组而不是对象形式取回客户信息:$customers = Customer::find() ->asArray() ->all();// $customers 的每个元素都是键值对数组
批量获取数据
// 一次提取 10 个客户信息foreach (Customer::find()->batch(10) as $customers) { // $customers 是 10 个或更少的客户对象的数组}// 一次提取 10 个客户并一个一个地遍历处理foreach (Customer::find()->each(10) as $customer) { // $customer 是一个 ”Customer“ 对象}// 贪婪加载模式的批处理查询foreach (Customer::find()->with('orders')->each() as $customer) {}
操作数据(AR 提供以下方法插入、更新和删除与 AR 对象关联的那张表中的某一行)
[[yii\db\ActiveRecord::save()|save()]]
[[yii\db\ActiveRecord::insert()|insert()]]
[[yii\db\ActiveRecord::update()|update()]]
[[yii\db\ActiveRecord::delete()|delete()]]
// 插入新客户的记录$customer = new Customer();$customer->name = '詹姆斯';$customer->email = '007@example.com';$customer->save(); // 等同于 $customer->insert(); // 更新现有客户记录$customer = Customer::find($id);$customer->email = '邦德@demo.com';$customer->save(); // 等同于 $customer->update(); // 删除已有客户记录$customer = Customer::find($id);$customer->delete();
AR 同时提供了一下静态方法,可以应用在与某 AR 类所关联的整张表上。 用这些方法的时候千万要小心,因为他们作用于整张表! 比如,deleteAll() 会删除掉表里所有的记录。
[[yii\db\ActiveRecord::updateCounters()|updateCounters()]]
[[yii\db\ActiveRecord::updateAll()|updateAll()]]
[[yii\db\ActiveRecord::updateAllCounters()|updateAllCounters()]]
[[yii\db\ActiveRecord::deleteAll()|deleteAll()]]
参考:
http://www.yiichina.com/guide/2/db-active-record
转载请注明出处:http://blog.csdn.net/zhyoulun/article/details/40476471
- Yii Framework2.0开发教程(6)数据库mysql--ActiveRecord
- Yii Framework2.0开发教程(3)数据库mysql入门
- Yii Framework2.0开发教程(5)数据库mysql函数
- Yii Framework2.0开发教程(10)配合mysql数据库实现用户登录
- Yii Framework2.0开发教程(7)账户注册开发
- Yii Framework2.0开发教程(2)使用表单Form
- Yii Framework2.0开发教程(8)输入验证
- Yii Framework2.0开发教程(9)运行机制概述
- Yii Framework2.0开发教程(4)在yii中定义全局变量
- Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld
- Yii Framework2.0输入验证
- Yii Framework 开发教程(23) 数据库-概述
- Yii Framework 开发教程(23) 数据库-概述
- [我的PHP之旅] YII框架学习 03.连接数据库(使用ActiveRecord)
- Ruby开发:Sinatra+ActiveRecord+MySQL
- CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord
- CodeSmith 使用教程(3): 自动生成Yii Framework ActiveRecord
- Yii framework2 gii配置
- Memcache内存分配机制
- oracle PLSQL Developer 安装
- 实验室第六周工作报告
- Application类介绍
- eclipse、MyEclipse实现批量修改文件编码
- Yii Framework2.0开发教程(6)数据库mysql--ActiveRecord
- memcache 的内存存储
- CAD在线预览-2
- 汽车各部分名称
- gevent模块
- python 结巴分词(jieba)学习
- Linux shell 编程:查找一段IP地址是否被占用!
- VS2010 opencv2.4.6 打包安装程序 小结
- 数据库截取字符串