作者:zccst
目录
一、增删查改
二、验证规则
三、事务管理
四、名字空间。参考:Yii数据库操作——名字空间(named scopes)的三种用法
一、增删查改
1,创建
$post = new Post;
$post->title = "";
$post->content = "";
$post->created_at = "CDbExpression('NOW()')";
$post->save();
(1) 插入后可立即获得主键id。
$id = $post->id; // 前提是auto_increment
(2) 某一个字段的值为缺省值时,可以在models/Class.php中修改
Class Post extends CActiveRecord{
public $title = 'new title';
$post = new Post;
echo $post->title; // 输出是: new title
}
(3) 使用CDbExpression
$post->create_time = new CDbExpression('NOW()');
2,查询【待补充】
(1) 通过主键查询
find("postID=:postID", array(':postID' => postID)
findByPk($id) // 单主键
(2) 通过非主键查询
find("postID=:postID", array(':postID' => postID)
findAll( id = $id )
findAll( id IN ( $id ) )
3,更新【待补充】
先find,并将对应字段赋新值,再保存
可以通过CActiveRecord::isNewRecord来判断是新建,还是更新。
4,删除
(1) 如果是一条记录
先找到后删除
$post=Post::model->findByPk(10);
$post->delete();
直接通过主键删除(类级别删除,不需要先载入记录)
Post::model->deleteByPk(10);
(2) 如果是多条记录(类级别删除,不需要先载入记录)
Post::model->deleteAll();
二、验证规则
验证规则(Data validation)发生在调用save()方法的时候。验证是基于在rules()方法中的定义。
if( $post->save() ){
// 验证通过
} else {
// 验证失败。通过getErrors()返回错误信息。
}
获取用户从表单提交的数据
$post->title = $_POST['title'];
$post->content = $_POST['content'];
$post->save();
如果多了,可以通过下面的方式减轻(alleviate)复杂程度:
$post->attributes = $_POST['Post'];
$post->save();
//类似于:
foreach($_POST['Post'] as $name=>$value){
if($name is a safe attribute)
$model->$name = $value;
}
注意:里面的验证检验非常重要,否则用户可能绕过授权。
三、事务管理
dbConnection是CDbConnection的实例
官方文档
$model = Post::model();
$transaction = $model->dbConnection->beginTransaction();
try{
$post = $model->findByPk(10);
$post->title = 'new post title';
$post->save();
$transaction->commit();
} catch (Exception $e){
$transaction->rollback();
}
实际项目
$trans = Yii::app()->db->beginTransaction();
try {
$manufacturer = new Manufacturer();
$manufacturer->name = $name;
$manufacturer->email = $email;
$manufacturer->save();
$trans->commit();
} catch (Exception $e) {
$trans->rollback();
$this->response(array('status' => 1, 'msg' => $e->getMessage()));
}
其实使用的时候跟凡客体的我是凡客或淘宝体的亲一样。
注:Yii::app()后面的db在../config/main.php中已配置
'components'=>array(
'user'=>array('allowAutoLogin'=>true,),
'db'=>array("数据库连接参数"),
)
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
分享到:
相关推荐
本文介绍了 Yii2——使用数据库操作汇总(增删查改、事务),具体如下: 对象操作 查询 //1.简单查询 $admin=Admin::model()->findAll($condition,$params); $admin=Admin::model()->findAll(username=:name,...
yii对象操作、直接数据库操作、事物等操作。几乎所有的操作都收录了
本篇文章是对yii数据库增删查改进行了详细的分析介绍,需要的朋友参考下
Yii框架数据库操作分享ppt (Mac版,windows需转换格式)
主要介绍了Yii2数据库操作常用方法,结合实例形式总结分析了Yii2常用的增删查改及配置相关操作技巧,需要的朋友可以参考下
主要介绍了Yii数据库缓存用法,结合实例形式分析了Yii数据库缓存的使用步骤与相关实现代码,需要的朋友可以参考下
yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程
主要介绍了Yii2框架数据库简单的增删改查语法小结,非常不错,具有参考借鉴价值,需要的朋友可以参考下
对于复杂查询的场景,应使用 Yii DAO 建立数据库连接 默认情况下, 它假定 db 应用组件提供了所需的 CDbConnection 数据库连接实例, 如果你想使用一个不是 db 的应用组件,或者如果你想使用 AR 处理多个...
本文实例讲述了yii数据库的查询方法。分享给大家供大家参考,具体如下: 这里介绍两种查询方法。一种是直接查询,一种是使用借助criteria实现查询。 复制代码 代码如下:$user=User::model(); 1. 直接查询: $arr=...
php YII框架数据库备份模块
主要介绍了Yii框架数据库查询、增加、删除操作,结合实例形式总结分析了Yii框架数据库查询、增加、删除相关模型与控制器使用技巧,需要的朋友可以参考下
YII 2数据库迁移(Migrations) 使用教程,使用migrate功能迁移数据库
主要介绍了YII2框架中操作数据库的方式,结合实例形式总结分析了YII2使用createCommand方式及AR(Active Record)方式操作数据库相关实现技巧,需要的朋友可以参考下
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作