mysql设置字段为int php查询出来却是string

在阿里云服务器出问题之后,阿里工程师说排查不到问题,但是就是不能连接服务器了。所以让我们格式化服务器重新搭建项目。

在搭建项目中,用了半天时间把项目搭建好,但是下午忽然出现这样一个问题。就是很多返回的id都从int变成了string

然后作者就去排查问题。1.因为项目查询是从Elasticsearch里查询数据,所以我们看一下es里的数据是不是字符串。果然发现

es里面的数据存储的是字符串。那到底是不是es的问题呢。

我们继续去打印在在插入es之前的数据是什么样的。结果发现数据在插入es之前,从mysql查询出来异步插入的时候就已经是string了

所以我们去看了下数据表字段设置,是int没错

所以问题出现锁定在了php与mysql的交互

所以作者去百度查询什么问题会导致mysql设置字段为int php查询出来却是string?

结果说是这个配置项的问题

然后我们去加上之后进行打印。发现这并不是问题发生的诱因。并不是解决办法

so这时作者想起来昨天配置项目环境的时候是不是mysql方面有配置问题。

so我们去开发环境看一下

两个环境一个是mysqli 一个是mysqlnd 

并且新环境缺少 gd 和obdc,及对应的pdo扩展

so作者改变了环境。重新安装扩展。安装成功之后再跑一次,发现成功

发现确实是mysqli和mysqlnd的区别

原来mysqli查询出来就是string

mysqlnd查询出来是int

问题解决方法就是装mysqlnd。

粗浅经验,望各位采纳!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁静之峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值