Код: Выделить всё
$criteria=new CDbCriteria;
$criteria->condition = 'string LIKE :string';
$criteria->params = array(':string' => $_GET['string']);
$sort = Array(
'defaultOrder' => '`t`.Type ASC',
'attributes'=>array(
'String',
'Type',
),
);
$dataProvider=new CActiveDataProvider($S,array(
'pagination'=>array(
'pageSize'=>20,
),
'criteria' => $criteria,
'sort' => $sort,
));
PDO с CDbCriteria не работает, и все параметры передаются как есть. Простейшая инъекция %_% - приводит к тому что выдаются все записи из таблицы.
bindParam для CDbCriteria не существует.
mysql_escape_string с YIi тоже не работает. Можно наверное конечно подключиться к базе, но делать это каждый раз, получая как минимум 2 подключения к базе на 1 приложение не хочется.
Описанный на форуме вариант CHtml::encode($_GET['string']) - не спасает.
Возникает закономерный вопрос, что делать? Может есть какой-то другой путь, просто я его не вижу?