Я заметил, что если я зарегистрирую что-либо в своей базе данных, независимо от типа переменной, она будет храниться в виде строки в ней.
Когда я получу это с запросом, я также получустрока вместо целого числа, логического значения или чего-то еще.
$var = 1;
$query = $dao->prepare('INSERT INTO table SET var = :var');
$query->bindValue('var', $var, \PDO::PARAM_INT);
$query->execute();
$query = $dao->prepare('SELECT var FROM table');
$query->execute();
var_dump($query->fetchColumn()); // (string) "1" instead of (int) 1
Это немного раздражает, потому что я должен быть осторожен при сравнении моего типа данных с некоторыми значениями.
Яиспользуя ООП.Мои объекты Entity увлажняются, когда передают массив своему конструктору, проверяя и устанавливая их типы при этом.
К сожалению, когда я выбираю данные из своей базы данных, я использую PDO::FETCH_CLASS
const, поэтому мои атрибуты объектовустановлены, но все они строковые, поскольку конструктор класса не используется.
Как разработчики справляются с этим?