我是使用pdo连接的,然后使用var_dump打印出来后,发现mysql中类型为int的字段打印之后变为string类型,不知道这是怎么回事,有没有办法让php显示mysql字段的实际类型?
我是使用pdo连接的,然后使用var_dump打印出来后,发现mysql中类型为int的字段打印之后变为string类型,不知道这是怎么回事,有没有办法让php显示mysql字段的实际类型?
4 回答13.2k 阅读✓ 已解决
5 回答7.7k 阅读✓ 已解决
2 回答7.4k 阅读✓ 已解决
2 回答6.6k 阅读✓ 已解决
1 回答5.2k 阅读✓ 已解决
1 回答5k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
自己测试了下:
PHP-5.4.39(内置驱动mysqlnd 5.0.10)
创建测试表和插入数据:
PDO查询var_dump输出:
可以看到无论PDO::ATTR_EMULATE_PREPARES设为false还是true,
decimal(10,2)的类型都是string,输出的数据是正确的.
不模拟预处理时(false),能保持数据类型,但某些类型,输出的数据跟数据库里的数据不一致,比如上面的float.
MySQLi查询返回的字段类型也都是string.
所以说返回string类型给程序是安全的,之后可以进行类型转换: