1

我正在使用 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,
            ),

        ));
4

1 回答 1

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,
            ),

        ));
于 2012-11-12T12:06:28.943 回答