Почему значение int становится строкой после чтения из базы данных? - PullRequest
4 голосов
/ 12 декабря 2011

В моем проекте фреймворка Yii, когда я читаю данные с использованием Active Record из базы данных, все типы данных столбца которой числовой , я получаю значение строкового типа, используя var_dump. Я очень растерялся.

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

Поскольку php является динамически типизированным языком, типы данных в интерфейсах часто вызывают недоумение.

Обычно, когда данные извлекаются из базы данных, драйвер не заботится о преобразовании каждого значения в тип в php, который больше всего напоминает тип данных в mysql (или вы также можете сказать, что php не интеллектуалендостаточно сделать это автоматически);Вы должны сделать это преобразование самостоятельно.К счастью, это действительно легко сделать:

$yourvar = (int)$yourvar;
0 голосов
/ 04 сентября 2012

Yii CActiveRecord динамически создает переменные модели, когда мы выполняем запрос, и по умолчанию они имеют строковый тип. Они используют магический метод _get & _set для динамического создания и не задают свои типы, поэтому они имеют строковый тип.

Поскольку PHP не является строго типизированным языком, поэтому вам не стоит об этом беспокоиться, вы можете изменить его тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...