防止 MySQL PDO 以字符串形式返回数字
我正在使用PHP的PDO来查询MySQL数据库。它将数字和整数作为字符串返回,并且弄乱了我的JSON。
除了逐行对值进行类型转换之外,是否有更好的方法来修复它?
array(2) {
["name"]=> string(11) "Preliminary"
["sell_price"]=> string(6) "864.00"
}
我正在使用PHP的PDO来查询MySQL数据库。它将数字和整数作为字符串返回,并且弄乱了我的JSON。
除了逐行对值进行类型转换之外,是否有更好的方法来修复它?
array(2) {
["name"]=> string(11) "Preliminary"
["sell_price"]=> string(6) "864.00"
}
如果您使用的是 php 5.3.3 或更高版本,则可以将其用作执行此操作的第二个参数。JSON_NUMERIC_CHECK
json_encode
虽然@Explosion Pills在这种情况下可以满足@user1032531的需求,但它并没有解决问题的第一个来源。
正如您在原始问题中看到的那样,在PHP方面,来自的值已经是一个,尽管正如用户所说,在数据库中它存储为“数字”(我们不知道它是a还是a)。sell_price
string
DECIMAL
FLOAT
好吧,当将PDO与MySQL一起使用时,可能需要适当的配置才能将“数字”作为“数字”,正如用户@jameshfisher在他的评论中指出的那样。您可以点击他的链接,以获得使其正常工作所需的几乎所有内容。
从这一点来看,接受的答案是有效的,因为如果不使用,无论变量的类型如何,都会将所有内容作为文本发送,并且在使用它时,它会根据猜测而不是原始var的类型将值转换为类型。JSON_NUMERIC_CHECK
json_encode