Как я могу получить правильные типы данных из MySQL с PDO?

my PDO fetch возвращает все в виде строки.

У меня есть класс пользователя с id (int) и username (varchar).

когда я пытаюсь выполнить следующий sql-запрос

$db->prepare('SELECT * FROM users WHERE id=:id_user');
$db->bindParam(':id_user', $id_user);
$db->execute();
$user_data = $db->fetch(PDO::FETCH_ASSOC);

и var_dump ($user_data), параметр id представляет собой строку. Как я могу сделать так, чтобы PDO уважал правильные типы данных из mysql ?

1 ответов


вы можете использовать другой fetch_style. Если у вас есть класс пользователя, вы можете заставить PDO вернуть экземпляр пользователей класс

$statement->fetchAll(PDO::FETCH_CLASS, "User");

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

по теме: