php - 查询获取数据时设置属性类型
问题描述
我注意到,如果我在数据库中注册任何内容,无论变量类型是什么,它都会作为字符串存储在其中。
当我通过查询获取它时,我还将得到一个字符串而不是整数、布尔值或其他任何值。
$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。我的 Entity 对象在将数组传递给它们的构造函数时会自行水合,同时检查和设置它们的类型。
不幸的是,当我从数据库中获取数据时,我使用的是PDO::FETCH_CLASS
const,所以我的对象属性已设置,但它们都是字符串,因为没有使用类构造函数。
开发人员如何处理这个问题?
解决方案
推荐阅读
- c# - c# thread safety socket confusion
- c# - RadioButton 和 DropDownList 的 MVC 服务器端验证
- c++ - 如何调试 fastcgi 脚本?
- python - Python中三元运算符的模拟如何工作
- filemaker - 搜索后在 Filemaker 上设置数据范围
- react-bootstrap - bsPrefix prop not working for React Bootstrap?
- python - node.js 中的 hmac.new 等价物是什么?
- wpf - 从资源字典中为依赖属性提供默认值的最佳方法是什么
- java - Jackson json 属性(字符串)到实例
- java - @Resource List 的 Spring XML 配置中的等效项
一些类型?