在查询获取数据时设置属性类型

时间:2019-05-17 14:21:00

标签: php database types

我注意到,如果我在数据库中注册了任何内容,无论变量类型是什么,它都将作为字符串存储在其中。

当我通过查询获取它时,我还将得到一个字符串,而不是整数,布尔值或其他任何值。

    $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

这很烦人,因为在将我的数据类型与某些值进行比较时必须格外小心。

我正在使用OOP。当将数组传递给构造函数时,“我的实体”对象会自我补水,同时检查并设置其类型。

不幸的是,当我从数据库中获取数据时,我使用的是PDO::FETCH_CLASS const,因此设置了我的对象属性,但是由于未使用类构造函数,所以它们都是字符串。

开发人员如何处理此问题?

0 个答案:

没有答案