2012-11-12 36 views
1

我正在使用CSqlDataProvider来获取数据。我自己构建查询。CSqlDataProvider:如何为数据库查询转义字符串Yii

如何在构造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, 
      ), 

     )); 

回答

2

使用和使用params属性指定的参数。警予的PDO将aitomatically esacape字符串

例如

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

     )); 
相关问题