Ita*_*vka 11 php mysql zend-framework
当我使用ZF包装器运行sql查询时,所有数值都返回为字符串.我需要更改什么,以便值将以与数据库中相同的数据类型返回?
我Zend_Db
在Zend Framework中实现了很多代码.
正如其他人所说,Zend_Db
返回字符串而不是本机PHP整数或浮点数的原因是PHP的数据库扩展返回字符串.原因是可能没有本机PHP类型来表示某种数据库类型.
例如,MySQL BIGINT
是一个64位有符号整数.默认情况下,PHP int
类型限制为32位值,因此如果从数据库中获取数据并将其隐式转换为int
某些值,则某些值可能会被截断.还有其他几个类似的案例,float
日期和日期等.
对所有数据类型使用字符串表示是保持简单和一致的最佳方法,可以安全地避免数据丢失,并避免编写大量特定于供应商的特殊情况代码来进行数据类型映射.额外的代码也会导致性能下降.
因此,如果您需要将数据库结果映射到本机PHP数据类型的特定情况,则应在应用程序代码中自行实现(例如,在自定义Zend_Db_Table_Row
类中).