YII中的数据库approch

Har*_*chu 1 php activerecord dao yii query-builder

我正在开发我的第一个YII网站.我对YII数据库有一些疑问.

在yii中有三种查询数据库的方法.

  • 数据库访问对象
  • 查询生成器
  • 积极记录

  1. 这三种方法中哪一种是安全且最受欢迎的方法?
  2. 如果我有自定义查询来执行我更喜欢哪种方法?
  3. 在Query Builder查询的情况下,我们明确选择表格

        $user = Yii::app()->db->createCommand()
            ->select('id, username, profile')
            ->from('tbl_user') // explicitly choosing the table
            ->join('tbl_profile p', 'u.id=p.user_id')
            ->where('id=:id', array(':id'=>$id))
            ->queryRow();
    
    Run Code Online (Sandbox Code Playgroud)

    那么我应该在哪里编写查询构建器查询?如果我在相应的表模型中写它们有什么好处吗?

  4. 如果我使用DAO或查询构建器,哪个类应该扩展我的模型?

  5. 如果我遵循DAO方法或查询构建器方法,如何验证用户输入?

ita*_*chi 6

  1. 要看.如果你知道如何安全地使用它们,所有都是同样安全的.

  2. DAO.这是我的看法.

  3. 在模型中.

  4. Yii有两个主要的模型类.CFormModelCModel.对于查询,请相对于CModel扩展类.

最后只是一个注释.DAO是其中最快的.活动记录最慢.另一方面,活动记录更方便.你是需要决定什么应该是平衡的人.