PHP從(cóng)mysql中取數據時,如(rú)何不讓int類型的數據轉成string?



事(shì)情是這樣的,最近在網上找了一個開源商城(chéng),支持php版本7.1-7.3,然後框架是thinkphp6的。搭建起來(lái)學習一下人(rén)家的代碼和業務邏輯。
真正跑起來(lái)後,發現bug有點多,且經過排查大(dà)都(dōu)是因爲數據類型錯誤的原因(全部用的嚴格模式),所以在想這個團隊維護開源代碼沒維護好啊,嚴格模式沒用明白(bái)就(jiù)搞出來(lái)。
之後就(jiù)開始手工(gōng)改bug的過程(由于PHP之前從(cóng)數據庫拿數據隻能都(dōu)是string的,所以這裡(lǐ)欠考慮了),但(dàn)發現需要修改的地方有點多,而且可(kě)能出現意想不到的新增問(wèn)題。所以我想在php從(cóng)數據庫中拿數據時,能不能根據數據庫字段的類型對數據類型進行自(zì)動轉換。
找了一下PDO的一些參數,加上看(kàn)了下其他(tā)大(dà)手子的博客,答案是可(kě)以~
隻要使用setAttribute設置兩個屬性就(jiù)可(kě)以了,
PDO::ATTR_STRINGIFY_FETCHES => false, 和 PDO::ATTR_EMULATE_PREPARES => false,
此時理(lǐ)應問(wèn)題解決!
但(dàn)我沒有
我設置後根據就(jiù)沒有生(shēng)效,問(wèn)題還(hái)是那些問(wèn)題
難道我的pdo是個假的?
果然,經過一頓查資料,原因可(kě)能是因爲我的pdo-mysql用的驅動不是php官方的mysqlnd
我查了下我用的驅動是mysql而不是mysqlnd。
所以趕緊下載mysqlnd驅動,也就(jiù)是mysqlnd.so的一個擴展。
yum install php72w-mysqlnd
提示和mysql有沖突,得(de)先卸載mysql
那先卸載mysql再安裝mysqlnd
yum remove 72w-mysql yum install php72w-mysqlnd
重啓
打開商城(chéng)
問(wèn)題解決~
相(xiàng)關推薦
公司新聞
熱(rè)烈慶祝公司自(zì)研“即時聊天”應用獲得(de)軟件(jiàn)著作(zuò)權
[2021-10-18]
公司自(zì)研小程序—"幫你(nǐ)找資源"預計(jì)10月20日(rì)上線!
[2021-10-17]
公司微信公衆号正式上線了!
[2021-10-18]
慶祝公司與北京新起跑教育咨詢有限公司合作(zuò)成功
[2021-09-06]
公司自(zì)研産品——線上兼職平台試運行
[2021-08-06]
行業動态
Twitter推出“超級關注”作(zuò)者付費内容 但(dàn)卻面臨蘋果應用商店(diàn)數量限制
[2021-09-06]
谷歌 Chrome 93 浏覽器發布,包含大(dà)量優化改進
[2021-09-06]
網信辦:算法推薦提供者不得(de)利用算法屏蔽信息、過度推薦、操縱榜單
[2021-09-06]
胡潤世界500強榜單:騰訊阿裡(lǐ)領銜中國(guó)企業,華爲小米上榜
[2021-09-06]
Facebook違反歐盟用戶數據共享法規,被罰款2.167億美元
[2021-09-06]
技術(shù)學堂
MySQL的基本命令
[2021-09-06]
Python學習先從(cóng)環境搭建開始~
[2021-10-18]
PHP從(cóng)mysql中取數據時,如(rú)何不讓int類型的數據轉成string?
[2021-09-06]
•••
•••