首頁 關于我們 成功案例 網站(zhàn)建設 新聞中心 聯系方式
QQ聯系
電話(huà)聯系
手機(jī)聯系

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

PHP從(cóng)mysql中取數據時,如(rú)何不讓int類型的數據轉成string? 發布時間:2021-09-06 23:43
PHP從(cóng)mysql中取數據時,如(rú)何不讓int類型的數據轉成string? 發布者:某程序猿
PHP從(cóng)mysql中取數據時,如(rú)何不讓int類型的數據轉成string? 浏覽次數:475

事(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)關推薦