你们操作数据库的层是怎么写的,我不确定我的写法有没有问题,特来请教大家 [ 2.0 版本 ]
我看有很项目中在完成一些数据库操作时用的是静态方法完成的。
就是说在ActiveRecord的子类里增加一个静态方法,然后再Controller里直接用 Class::function形式调取。
举个例子:
比如有个User类,对应数据库中User表,
Class User extends ActiveRecord
{
public static function addUser($username.$password)
{
//写一些sql插入这条记录
}
}
然后再Controller里直接用
User::addUser($username.$password)
这样的方式调用可以么?有不安全的地方么?因为我了解到的,静态方法是属于类的,如果两个请求同时调了这个方法,会冲突么?虽然我写了些测试代码,没有发生冲突的情况,但是我还是不放心,因为之前写别的的时候都是new 一个普通对象,然后调对象方法实现的,还没这么用过,不怎么放心。
另外就是 还有没其他的问题。
大家平时都怎么用的呢?
最佳答案
其他 4 个回答
-
个人觉得,不是说不能这么做,而是可以直接使用yii提供的增删改操作
$user = new User(); $user ->name = 'Qiang'; $user ->save(); // 一行新数据插入 User表
使用原生sql语句:
$db->createCommand('INSERT INTO User (name) VALUES (:name)', [ ':name' => 'Qiang', ])->execute();
要多看看文档:http://www.yiichina.com/doc/guide/2.0/db-active-record
框架这个东西,应该灵活应用,不是说就不能一定怎么做,一定就要那么做,没有这个硬性要求。共 2 条回复
kissgxd
注册时间:2015-06-09
最后登录:2019-05-07
在线时长:26小时5分
最后登录:2019-05-07
在线时长:26小时5分
- 粉丝3
- 金钱3810
- 威望30
- 积分4370