CSqlDataProvider:如何转义数据库查询的字符串Yii

时间:2012-11-12 10:47:19

标签: php yii

我正在使用CSqlDataProvider来获取数据。我自己构建查询。

如何在构造mysql查询时转义字符串?

我尝试使用mysql_real_escape_string,但它不起作用

$count=Yii::app()->db->createCommand($this->constructCountQuery())->queryScalar();      
        return $dataProvider = new CSqlDataProvider($this->constructDataQuery(), array(
            'totalItemCount'=>$count,
            'sort'=>array(
                'attributes'=>array(
                      'clinic_name', 'doctor_name','country'
                ),
            ),
            'pagination'=>array(
                'pageSize'=>10,
            ),

        ));

1 个答案:

答案 0 :(得分:2)

使用命名参数并使用params属性指定参数。 Yii的PDO将无意中使用字符串

例如

$dataProvider = new CSqlDataProvider('SELECT * FROM posts WHERE `title`=:title', array(
            'totalItemCount'=>$count,
            'params'=>array(
                   ':title'=>$title,
            ),
            'sort'=>array(
                'attributes'=>array(
                      'clinic_name', 'doctor_name','country'
                ),
            ),
            'pagination'=>array(
                'pageSize'=>10,
            ),

        ));