php – 在Symfony中使用Doctrine的DBAL检索布尔值
发布时间:2020-12-13 15:56:43 所属栏目:PHP教程 来源:网络整理
导读:我在Symfony项目中使用DBAL来访问Mysql数据库中的数据.当使用布尔字段查询表(创建为tinyint)时,我在 PHP中得到tinyint值,但我想得到布尔值. 不知何故,我想直接使用与Doctrine相同的映射. 我认为映射转换(从mysql到php)已经在DBAL中实现了,但是我不确定它是否
我在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'] 但这甚至不是理想的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |