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 中的存储过程。我将如何在 Yii for MySQL 中执行此操作。

4

1 回答 1

11
  1. 不要$page直接$section插入 sql 代码。您的网站将容易受到 SQL 注入的攻击!请改用参数。
  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 回答