我正在使用 PDO 和 MySQL,由于某种原因,当从数据库获取 int 类型的值时,PDOStatement 返回数字的字符串表示形式,而不是数字类型的值。我该如何防止这种情况发生?
我注意到 PDO 类有一个属性:PDO::ATTR_STRINGIFY_FETCHES
这应该可以解决这个问题,但是当尝试修改它时,它会抛出一个错误,指出该属性对于 MySQL 驱动程序无效。
查询数据库时获取字符串而不是数字是否正常?
首先回答你的最后一个问题,“是的”,不幸的是,接收数字作为字符串是正常的。正如 Pascal 引用的手册所说,mysqlnd(PHP 5.3)将从准备好的语句返回本机数据类型,前提是您关闭 PDO 的准备好的语句模拟。
new PDO($dsn, $user, $pass, array(
PDO::ATTR_EMULATE_PREPARES => false
))
PDO::ATTR_STRINGIFY_FETCHES 与 MySQL 无关。
如果你看到好的一面,无论如何使用准备好的语句都是很好的做法,所以......;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)