1

私は最初のYIIWebサイトを開発しています。YIIデータベースについていくつか疑問があります。

yiiでデータベースをクエリする方法は3つあります。

  • データベースアクセスオブジェクト
  • クエリビルダー
  • アクティブレコード

  1. これらの3つの方法のうち、安全で最も好ましい方法はどれですか。
  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. DAO。それは私の意見です。

  3. モデルで。

  4. Yiiには2つの主要なモデルクラスがあります。CFormModelおよびCModel。クエリの場合、CModelに関してクラスを拡張します。

最後にメモをとってください。DAOはその中で最速です。アクティブレコードが最も遅いです。一方、アクティブレコードの方が便利です。バランスをどうするかを決める必要があるのはあなたです。

于 2012-10-30T08:21:20.547 に答える
0

すべての要件にCActiveRecordを使用できます。

于 2012-11-01T05:25:43.023 に答える