首頁 > 資料庫 > mysql教程 > 為什麼我的 PHP MySQL 數字列結果有時是字串而不是整數或浮點數?

為什麼我的 PHP MySQL 數字列結果有時是字串而不是整數或浮點數?

DDD
發布: 2024-12-10 16:18:10
原創
887 人瀏覽過

Why are my PHP MySQL numeric column results sometimes strings instead of integers or floats?

從MySQL 返回整數和數字作為PHP 類型

儘管將PDO::ATTR_STRINGIFY_FETCH的問題仍然以字串形式返回,而不是整數或數字。此行為通常歸因於驅動程式實作問題。

mysqlnd 差異

解決此問題的關鍵在於確保您使用 mysqlnd PHP 驅動程式。查看 php -i 時,pdo_mysql 部分中缺少「mysqlnd」表示正在使用本機驅動程式。

安裝 mysqlnd

在 Ubuntu 上,安裝php5-mysqlnd 而不是 php5-mysql。為了確保成功過渡,請按照以下步驟操作:

  1. 刪除舊驅動程式:apt-get remove php5-mysql
  2. 安裝新驅動程式:apt-get install php5-mysqlnd
  3. 重新啟動Apache:service apache2重新啟動

驗證 mysqlnd

安裝 php5-mysqlnd 後,php -i 現在應該在 pdo_mysql 部分明確提及“mysqlnd”。

PDO 設定

設定下列PDO 屬性以確保正確的資料處理:

  • PDO::ATTR_EMULATE__PRRES. 🎜>PDO::ATTR_STRINGIFY_FETCHES: false
已傳回值

使用正確的驅動程式和設置,數字列將作為適當的PHP 類型傳回:

浮點類型(FLOAT、DOUBLE):PHP float
  • 整數型別(INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT):PHP整數
  • 定點型別(DECIMAL、NUMERIC):字串
  • (註:超過64 位元有符號整數的BIGINT 在64 位元系統上將作為字串傳回。 🎜>例如以下資料:

  • 將會回傳如:

以上是為什麼我的 PHP MySQL 數字列結果有時是字串而不是整數或浮點數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板