在mysql里设置了字段类型是bigint的,20位

然后通过php读取数组出来,使用json_encode

在不同的环境下,有不同的表现

1、这个字段在json中是字符串类型的,

2、这个字段读取出来是数字类型的,那么问题就来了,这个时候json_decode出来的结果是科学计算法的 + e。

这样对前端使用,就有了苦难。

想问,这个读取出来不同的类型,是跟什么配置有关?php 的配置,mysql的配置。

我现在的作法就是不管,在最后输出的时候,都转换一次,变成字符串。

补充一下

肯定不是32位、64位系统的问题。

同样的表结构设计,同样的64位环境

比如数组:144781210120784720

我的电脑取出来的值就是 字符串类型的 "144781210120784720",所以json都没问题

服务器去取出来的就是数字类型的,所以json变成了+3

回复内容:

在mysql里设置了字段类型是bigint的,20位

然后通过php读取数组出来,使用json_encode

在不同的环境下,有不同的表现

1、这个字段在json中是字符串类型的,

2、这个字段读取出来是数字类型的,那么问题就来了,这个时候json_decode出来的结果是科学计算法的 + e。

这样对前端使用,就有了苦难。

想问,这个读取出来不同的类型,是跟什么配置有关?php 的配置,mysql的配置。

我现在的作法就是不管,在最后输出的时候,都转换一次,变成字符串。

补充一下

肯定不是32位、64位系统的问题。

同样的表结构设计,同样的64位环境

比如数组:144781210120784720

我的电脑取出来的值就是 字符串类型的 "144781210120784720",所以json都没问题

服务器去取出来的就是数字类型的,所以json变成了+3

这跟配置无关,这跟语言有关, 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类型,应该可以解决你的问题吧。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php mysql 类型_php mysql bigint 类型相关推荐

  1. mysql的bigint类型_php mysql bigint 类型

    在mysql里设置了字段类型是bigint的,20位 然后通过php读取数组出来,使用json_encode 在不同的环境下,有不同的表现 1.这个字段在json中是字符串类型的, 2.这个字段读取出 ...

  2. php mysql 全文检索_PHP+MYSQL实现全文检索

    PHP+MYSQL实现全文检索 如何使用PHP实现全文检索功能? 很多人可能马上可以想出几种方案,比如:文件检索法.采用SQL的like语句等方法,但这些方法效率都相当的低. 这里介绍一种比较高效的P ...

  3. php mysql mysql_set_charset()._PHP:MySQL函数mysql_set_charset()的用法

    mysql_set_charset (PHP 5 >= 5.2.3) mysql_set_charset - 设置客户端的字符集 本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除.应使用 ...

  4. mysql 类型 bigint_MySQL的bigint类型

    bigint支持的数字的大小范围为:19位,存电话号码.有符号范围:-9223372036854775808 到 9223372036854775807 int支持的数字范围为:10位,有符号范围:- ...

  5. php mysql预处理_PHP MySQL 预处理语句

    预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下:预处理:创建 SQL 语句模板并发送 ...

  6. php mysql表情符号_php + mysql 存入表情 【如何转义emoji表情,让它可以存入utf8的数据库】...

    方法1:base_encode64 这种方法是可以,但是旧数据没有经过encode操作,取数据的时候如果统一进行decode的话,旧数据会丢失的. 1 方法2:urlencode 这个似乎可以,对没有 ...

  7. mysql 夏令时_php – MySQL datetime字段和夏令时 – 如何参考“额外”小时?

    MySQL的日期类型,坦率地说,破碎,不能正确存储所有时间,除非您的系统设置为常量偏移时区,如UTC或GMT-5. (我使用MySQL 5.0.45) 这是因为您不能在夏令时结束前的一小时内存储任何时 ...

  8. php mysql 预处理_PHP MySQL 预处理语句

    PHP MySQL 预处理语句 在本教程中,您将学习如何使用PHP在MySQL中使用预处理语句. 预处理语句是什么 预处理语句(也称为参数化语句)只是一个SQL查询模板,其中包含占位符而不是实际参数值 ...

  9. mysql+基本代码_PHP+MySQL扎实基本功十句话_php

    2.写程序前看看怎么用error_reporting. 3.不懂就问本身没错,但你需要在那之前查查手册. 4.当然,你需要懂得使用手册.手册上找不到答案的时候,应该考虑下网络上的搜索引擎. 5.刚学会 ...

最新文章

  1. 查看Windows端口及端口关闭方法
  2. Java 取得文件名的后缀
  3. [基础语法] SEARCH搜索指定字符串详解
  4. 修改DNS的Linux脚本,Shell脚本-配置网络
  5. Mac安装metasploit-framework【亲测有用】
  6. div+css二级菜单
  7. EditPlus-CN使用总结
  8. 小记tensorflow-1:tf.nn.conv2d 函数介绍
  9. java item 类型参数_Java8中对Lambda表达式中方法参数的类型推断(一)
  10. mysql.5.7 declare_MySQL-5.7 游标及DECLARE
  11. 【渝粤教育】电大中专计算机使用基础_1作业 题库
  12. 一线城市,前端工程师最低工资2K-3K,最高20K-30K 你怎么看?
  13. Activity任务栈
  14. Python之通过API获取数据库数据及图片
  15. “2019年全国职业院校技能大赛”高职组计算机网络应用竞赛竞赛样题C卷(软件定义网络部分答案参考)
  16. @千行百业,一起乘云而上
  17. 2.8 STM32_按键扫描_安富莱
  18. 小米蓝牙耳机怎么串联,只有一边有声音
  19. git 账号密码重置
  20. execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘

热门文章

  1. 微信小程序---家庭记账本开发(三)
  2. Spring MVC开发初体验
  3. SQL 之连接查询
  4. 夺命雷公狗---ECSHOP---01-解决报错问题
  5. spring集成testng
  6. Python大佬分析了15万歌词,告诉你民谣歌手们到底在唱什么
  7. Linux第十一周微职位
  8. CentOS6.X安装10G需要额外安装的软件包
  9. Android项目clean之后R.java文件丢失解决办法
  10. (三)线程同步工具集_1---控制线程并发访问一个资源