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

  • Post author:
  • Post category:php


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

在搭建项目中,用了半天时间把项目搭建好,但是下午忽然出现这样一个问题。就是很多返回的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。

粗浅经验,望各位采纳!



版权声明:本文为weixin_41612889原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。