我正在使用 PDO 和 MySQL,出于某种原因,当从数据库中获取 int 类型的值时,PDOStatement 返回的是数字的字符串表示形式,而不是数字类型的值。如何防止这种情况发生?
我注意到 PDO 类的一个属性: PDO::ATTR_STRINGIFY_FETCHES
应该解决这个问题,但是当尝试修改它时,它会抛出一个错误,说该属性不是对 MySQL 驱动有效。
查询数据库时获取字符串而不是数字是否正常?
最佳答案
首先要回答您的最后一个问题,“是的”,不幸的是,将数字作为字符串接收是正常的。正如 Pascal 引用的手册所说,mysqlnd(PHP 5.3)将从准备好的语句返回 native 数据类型,前提是您关闭 PDO 的准备好的语句模拟。
new PDO($dsn, $user, $pass, array(
PDO::ATTR_EMULATE_PREPARES => false
))
PDO::ATTR_STRINGIFY_FETCHES 与 MySQL 无关。
如果你看到好的一面,最好还是使用准备好的语句,所以... ;)
关于php - 如何使用 PDO 从 MySQL 获取数字类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197005/