php mysql 类型_php mysql bigint 类型
在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 类型相关推荐
- mysql的bigint类型_php mysql bigint 类型
在mysql里设置了字段类型是bigint的,20位 然后通过php读取数组出来,使用json_encode 在不同的环境下,有不同的表现 1.这个字段在json中是字符串类型的, 2.这个字段读取出 ...
- php mysql 全文检索_PHP+MYSQL实现全文检索
PHP+MYSQL实现全文检索 如何使用PHP实现全文检索功能? 很多人可能马上可以想出几种方案,比如:文件检索法.采用SQL的like语句等方法,但这些方法效率都相当的低. 这里介绍一种比较高效的P ...
- 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 起已废弃,并在将来会被移除.应使用 ...
- mysql 类型 bigint_MySQL的bigint类型
bigint支持的数字的大小范围为:19位,存电话号码.有符号范围:-9223372036854775808 到 9223372036854775807 int支持的数字范围为:10位,有符号范围:- ...
- php mysql预处理_PHP MySQL 预处理语句
预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下:预处理:创建 SQL 语句模板并发送 ...
- php mysql表情符号_php + mysql 存入表情 【如何转义emoji表情,让它可以存入utf8的数据库】...
方法1:base_encode64 这种方法是可以,但是旧数据没有经过encode操作,取数据的时候如果统一进行decode的话,旧数据会丢失的. 1 方法2:urlencode 这个似乎可以,对没有 ...
- mysql 夏令时_php – MySQL datetime字段和夏令时 – 如何参考“额外”小时?
MySQL的日期类型,坦率地说,破碎,不能正确存储所有时间,除非您的系统设置为常量偏移时区,如UTC或GMT-5. (我使用MySQL 5.0.45) 这是因为您不能在夏令时结束前的一小时内存储任何时 ...
- php mysql 预处理_PHP MySQL 预处理语句
PHP MySQL 预处理语句 在本教程中,您将学习如何使用PHP在MySQL中使用预处理语句. 预处理语句是什么 预处理语句(也称为参数化语句)只是一个SQL查询模板,其中包含占位符而不是实际参数值 ...
- mysql+基本代码_PHP+MySQL扎实基本功十句话_php
2.写程序前看看怎么用error_reporting. 3.不懂就问本身没错,但你需要在那之前查查手册. 4.当然,你需要懂得使用手册.手册上找不到答案的时候,应该考虑下网络上的搜索引擎. 5.刚学会 ...
最新文章
- 查看Windows端口及端口关闭方法
- Java 取得文件名的后缀
- [基础语法] SEARCH搜索指定字符串详解
- 修改DNS的Linux脚本,Shell脚本-配置网络
- Mac安装metasploit-framework【亲测有用】
- div+css二级菜单
- EditPlus-CN使用总结
- 小记tensorflow-1:tf.nn.conv2d 函数介绍
- java item 类型参数_Java8中对Lambda表达式中方法参数的类型推断(一)
- mysql.5.7 declare_MySQL-5.7 游标及DECLARE
- 【渝粤教育】电大中专计算机使用基础_1作业 题库
- 一线城市,前端工程师最低工资2K-3K,最高20K-30K 你怎么看?
- Activity任务栈
- Python之通过API获取数据库数据及图片
- “2019年全国职业院校技能大赛”高职组计算机网络应用竞赛竞赛样题C卷(软件定义网络部分答案参考)
- @千行百业,一起乘云而上
- 2.8 STM32_按键扫描_安富莱
- 小米蓝牙耳机怎么串联,只有一边有声音
- git 账号密码重置
- execjs 模块 call() 方法报错 AttributeError: ‘NoneType‘ object has no attribute ‘replace‘