这跟配置无关,这跟语言有关, php的int类型的最大值是PHP_INT_MAX(你可以运行下,我这里是2147483647),超过这个值就会用科学计数法表示。
32位系统支持的php最大整形是2147483647
64位的是9223372036854775807
所以.......
MySQLi不使用prepare查询返回的字段类型全部是string,值跟数据库存储的内容一致.使用prepare时跟pdo_mysql关闭模拟预处理(PDO::ATTR_EMULATE_PREPARES => false)一样,返回的数据类型对应数据表的字段类型.
另外,拿我的环境来说(Ubuntu 14.04 AMD64),MySQL有符号bigint整型的字段最大能存储的整数是9223372036854775807,跟PHP_INT_MAX的值是一样的.
SELECT CAST(12345678901234567890 AS CHAR(20)) AS COL
FROM TB
从数据库中读取bigint时替换为varchar类型,应该可以解决你的问题吧。