Возвращает ли база данных SQL тип или слой абстракции базы данных выполняет неявное приведение?(Propel и PHP) - PullRequest
0 голосов
/ 13 октября 2018

Простой запрос Propel для получения результата 100 из столбца с типом VARCHAR возвращает строку.Это ожидаемое поведение.Я работаю с устаревшей системой и знаю, что мне нужно преобразовать эти значения в тип php integer, чтобы отсортировать их программно или выполнить арифметику и т. Д.

Возвращает ли база данных явное VARCHAR, и еслиТак как же это работает для слабо типизированного языка?

В качестве альтернативы DBAL смотрит на тип столбца и выполняет неявное приведение на этой основе?

Другими словами: Является ли тип столбца в SQL просто «тегом» или «меткой», который интерпретируется DBAL, который затем преобразуется соответствующим образом в зависимости от языка?

Чтобы сохранить конкретность вопроса, я бы хотелответ относительно: Propel, php и MySQL.

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Если я правильно вас понимаю, вы спрашиваете, использует ли база данных двоичный формат для хранения данных.Да, это так.Слой (и) между базой данных и приложением определяет, какой формат возвращается приложению.

На самом деле это как раз противоположный ваш вопрос - DBAL получает типизированную информацию, которая затем преобразуется в любойприложение может обрабатывать.

0 голосов
/ 13 октября 2018

Varchar - это тип символов, который преобразует числа в символы.SQL позволяет только настраивать столбец целиком.Извлечение одного значения и изменение его типа данных - это практика, с которой я никогда не сталкивался.Хотя это было бы действительно мощно.Надеюсь, что это отвечает на ваш вопрос.

...