我在Symfony项目中使用DBAL来访问MysqL数据库中的数据.当使用布尔字段查询表(创建为tinyint)时,我在PHP中得到tinyint值,但我想得到布尔值.
不知何故,我想直接使用与Doctrine相同的映射.
我认为映射转换(从MysqL到PHP)已经在DBAL中实现了,但是我不确定它是否会以这种方式工作(这个层映射值返回).
$this->conn->getDatabasePlatform()->registerDoctrineTypeMapping('tinyint', 'boolean');
$sql = "
SELECT se.survey_id, se.anonymous
FROM survey_edition se
";
$stmt = $this->conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetch();
在这种情况下,’anonymous’是MysqL中的tinyint(1)字段,但我希望$result [‘anonymous’]是布尔值而不是整数.
你知道是否可以通过Doctrine的DBAL从MySQL查询中获取PHP中的布尔值?
谢谢.
解决方法:
如果不使用某些ORM,你不能(据我所知)定义模型类型.
$item[$i]['foobar'] = (bool)$item[$i]['foobar']
但这甚至不是理想的解决方案.