2

この機能を変更する必要があります

    public function getScripts($page, $section){
        $data = Yii::app()->db->createCommand()
                ->select('*')
                ->from('scripts')
                ->where("page_id='$page' and section_id='$section'")
                ->queryAll();
        return $data;
    }

MySQLのストアドプロシージャに。YiiforMySQL内でこれをどのように行うのでしょうか。

4

1 に答える 1

11
  1. $pageand$sectionを SQL コードに直接挿入しないでください。あなたのサイトは SQL インジェクションに対して脆弱になります! 代わりに params を使用してください。
  2. 通常のクエリを実行するのと同じように、ストアド プロシージャを実行できます。

    public function getScripts($page, $section){
        return Yii::app()->db->createCommand("CALL your_stored_procedure(:page, :section)")
                          ->queryAll(array(':page' => $page, ':section' => $section));
    }
    
于 2012-12-07T17:30:29.797 に答える