你如何使用MySQL的Yii存储过程

Eri*_*ath 2 php mysql stored-procedures function yii

我需要改变这个功能

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

进入MySQL的商店程序.我如何在Yii for MySQL中执行此操作.

ceb*_*ebe 11

  1. 请勿将$page$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));
    }
    
    Run Code Online (Sandbox Code Playgroud)