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

时间:2012-11-26 18:16:57

标签: php mysql function stored-procedures 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;
    }

进入MySQL的商店程序。我如何在Yii for MySQL中做到这一点。

1 个答案:

答案 0 :(得分: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));
    }