1

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

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

  • 数据库访问对象
  • 查询生成器
  • 活动记录

  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 方法或查询构建器方法,如何验证用户输入?

4

2 回答 2

6
  1. 要看。如果您知道如何安全地使用它们,那么所有这些都同样安全。

  2. 道。这是我的意见。

  3. 在模型中。

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

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

于 2012-10-30T08:21:20.547 回答
0

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

于 2012-11-01T05:25:43.023 回答