YII中的数据库方法

时间:2012-10-30 07:44:59

标签: php activerecord yii dao query-builder

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

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

  • 数据库访问对象
  • 查询构建器
  • Active Record

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

    这样的表
        $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();
    

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

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

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

2 个答案:

答案 0 :(得分:6)

  1. 取决于。如果你知道如何安全使用它们,所有都是同样安全的。

  2. DAO。这是我的看法。

  3. 在模特中。

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

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

答案 1 :(得分:0)

您可以使用CActiveRecord满足您的所有要求。