Результаты базы данных Codeigniter4 не учитывают типы данных numeri c - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь установить конфигурацию MySQL соединения на Codeigniter-4, чтобы получить правильный тип данных результатов numeri c. Все результаты возвращаются в виде строк.

Я использую mysqli , а класс подключения (CodeIgniter \ Database \ MySQLi \ Connection), похоже, не настраивает параметр MYSQLI_OPT_INT_AND_FLOAT_NATIVE on true и у меня нет способа сделать это.

Я думаю расширить класс Connection, но Option (я думаю) должен быть установлен раньше вызывается mysqli real_connect (тогда мне нужно переписать всю функцию connect ). Несмотря на это, я безуспешно пытался расширить класс Connection.

На CodeIgniter \ Database загрузчик, кажется, позволяет использовать полностью новый DBDriver, используя ссылку на пространство имен с "\ "в конфигурации базы данных.

$className = strpos($params['DBDriver'], '\\') === false
            ? '\CodeIgniter\Database\\' . $params['DBDriver'] . '\\Connection'
            : $params['DBDriver'] . '\\Connection';

, но я пытаюсь найти лучшее решение, чем переписывать полный драйвер.

Конечно, решением было бы реализовать объект для каждая модель данных, но я пытаюсь получить необработанные данные для внешнего интерфейса без этих накладных расходов.

Есть идеи ???

...