2016-04-23 11 views
0

私の質問でもっと明確にするために、yii\db\CommandbindValue()とbindParam()メソッドがあることを知っていますが、ActiveRecord自体で行う可能性があります。私はすべてのクエリを手作業で書くのではなく、組み込み関数を使うことを望んでいます。Yii 2にActiveRecordモデルの保存文を強制的に使用する

class User extends \yii\db\ActiveRecord{ 
     public static function tableName(){ 
      return 'user'; 
     } 
     public function rules(){ ... } 
} 
... 

$user= new User(); 
$user->firstName='John'; 
$user->lastName='Doe'; 
$user->save(); 

私は>(セーブ$モデル - を呼び出した後に実行されているSQLを見て)私はuserfirstNamelastName、...)VALUES( 'ジョンINTO [yii\db\Command::execute] INSERTのようなプレーンなSQL文を参照してください、 'ドウ'、...)

同じ文を選択するために適用されます。 [Yiiの\ DB \コマンド::クエリ] SELECT * FROMユーザーWHERE ID =23

私はそのフレームワークが準備された文とバインドを作成する必要があります期待parameters.T帽子は速く砕けるでしょう。

プレーンなSQLの代わりにprepared statementを作成する方法はありますか?

+0

あなたのアプローチに感謝しますが、github.com/yiisoft/yii2/ですべてのコアYiiデベロッパーと話し合う必要があります。 github.comで議論すると、より多くの人があなたの提案を聞く機会が増えます – SohelAhmedM

答えて

0

the docsに記載されているように、複数回実行される複雑なSQL文の場合、パフォーマンスが向上する可能性があります。バインディング・パラメータを持つSQL文の場合、このメソッドは自動的に呼び出されます。

またはQueryBuilderを使用してクエリを生成できます。

+0

あなたの返事をありがとう。私はあなたが言及したこれらの方法について知っていますが、準備されたステートメントをすぐに使用するようにフレームワークを構成する可能性を見ています(編集済みの記事を参照)。 –

関連する問題