Возвращать значения из базы данных в исходных типах данных (Kohana ORM) - PullRequest
0 голосов
/ 22 марта 2012

У меня есть столбец в таблице базы данных active, который должен возвращать, подтвердил ли пользователь почту или нет. Это tinyint (1), и если оно установлено в 0, и я проверяю его строго против FALSE, оператор не возвращает TRUE. Я использую ORM для связи с базой данных.

Это установлено в базе данных MySQL:
активный tinyint (1) Да 0

if ($user->active === FALSE) // returns FALSE
if ($user->active === '0') // returns TRUE

Я искал в API решение, а в классе Database уже был тип данных tinyint.

Должен ли я использовать == вместо === или я могу что-то еще сделать?

1 Ответ

2 голосов
/ 22 марта 2012

Для обеспечения согласованности преобразование данных в дБ в эквиваленты PHP было удалено с версии 3.0, что означает, что вы правы - нет строгого сравнения:)

Что вы можете сделать, если действительно хотите, перезаписать ORM::_load_values()в сочетании с ORM::list_columns() для приведения к «правильным» типам данных (то есть - если вы остаетесь с драйвером MySQL, потому что переход на PDO приведет к поломке).

...