天天看點

mysql設定字段為int php查詢出來卻是string

在阿裡雲伺服器出問題之後,阿裡工程師說排查不到問題,但是就是不能連接配接伺服器了。是以讓我們格式化伺服器重新搭建項目。

在搭建項目中,用了半天時間把項目搭建好,但是下午忽然出現這樣一個問題。就是很多傳回的id都從int變成了string

然後作者就去排查問題。1.因為項目查詢是從Elasticsearch裡查詢資料,是以我們看一下es裡的資料是不是字元串。果然發現

es裡面的資料存儲的是字元串。那到底是不是es的問題呢。

我們繼續去列印在在插入es之前的資料是什麼樣的。結果發現資料在插入es之前,從mysql查詢出來異步插入的時候就已經是string了

是以我們去看了下資料表字段設定,是int沒錯

是以問題出現鎖定在了php與mysql的互動

是以作者去百度查詢什麼問題會導緻mysql設定字段為int php查詢出來卻是string?

結果說是這個配置項的問題

mysql設定字段為int php查詢出來卻是string

然後我們去加上之後進行列印。發現這并不是問題發生的誘因。并不是解決辦法

so這時作者想起來昨天配置項目環境的時候是不是mysql方面有配置問題。

so我們去開發環境看一下

兩個環境一個是mysqli 一個是mysqlnd 

并且新環境缺少 gd 和obdc,及對應的pdo擴充

so作者改變了環境。重新安裝擴充。安裝成功之後再跑一次,發現成功

發現确實是mysqli和mysqlnd的差別

原來mysqli查詢出來就是string

mysqlnd查詢出來是int

問題解決方法就是裝mysqlnd。

粗淺經驗,望各位采納!