如何使用PDO从MySQL获取正确的数据类型?

Luk*_*kmo 9 php mysql pdo

我的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);
Run Code Online (Sandbox Code Playgroud)

和var_dump($ user_data),id参数是一个字符串.我怎样才能使PDO尊重mysql中正确的数据类型?

Jos*_*sto 3

您可以使用不同的fetch_style。如果您有一个User类,您可以强制 PDO 返回User类的实例

$statement->fetchAll(PDO::FETCH_CLASS, "User");
Run Code Online (Sandbox Code Playgroud)

您现在可以在用户内部处理属性验证和转换类所属的位置

有关的: