Всем привет! Хочу поделиться с вами небольшим решением проблемы, с которой я столкнулся при переносе части данных проекта в mongodb. Изначально мы использовали только Mysql и все параметры, поступающие от клиента, позволяли без проблем получать данные из базы.
Но дело в том, что для mysql нет разницы [выбрать * из данных, где id = 1] или [выбрать * из данных, где id = ' 1 ' ].<Эphp $id = Yii::app()->request->getParam('id', 0); $data = Data::getForId($id); ?>
Но mongodb различает типы данных, поэтому невозможно найти запись по условию id == '1', если id в mongodb является числом.
Чтобы не усложнять и не увеличивать объем кода добавлением (int) для приведения типов <Эphp
$id = (int)Yii::app()->request->getParam('id', 0);
?>
Было выбрано следующее решение — создание собственного менеджера запросов на основе стандартного CHttpRequest.
Результат – следующий класс.
<Эphp
class CParseRequest extends CHttpRequest
{
Теги: #php #MySQL #mongodb #Yii #php #Yii #mongodb
-
Гибкий Кризис. Что Делать?
19 Oct, 24 -
Почему Docker Не Всегда Работает
19 Oct, 24 -
Мини-Обзор Клиентов Joomla
19 Oct, 24