首頁 > 後端開發 > php教程 > 如何確保 MySQL 數字和整數列在 PHP 中作為正確的資料類型傳回?

如何確保 MySQL 數字和整數列在 PHP 中作為正確的資料類型傳回?

Mary-Kate Olsen
發布: 2024-12-05 15:15:10
原創
334 人瀏覽過

How Can I Ensure MySQL Numeric and Integer Columns Are Returned as the Correct Data Type in PHP?

在PHP 中將MySQL 數字和整數列轉換為整數

問題概述

PHP 查詢通常會將所有列傳回為字串,即使在處理整數時也是如此或MySQL 中的數值。當處理具有特定格式要求的資料時,例如多個服務使用的 JSON 輸出,這可能會出現問題。

駁斥常見的誤解

雖然一些消息來源聲稱不可能返回數字類型,但這是不完全正確。可以消除以下誤解:

  • 型別轉換:在程式碼中手動轉換值效率低下,並且可能會導致不一致。
  • 鬆散打字:PHP 的鬆散類型不是一個可靠的解決方案,因為數據可能會無意中轉換為strings.
  • 驅動程式限制:Linux 上的MySQL 本機驅動程式不完全支援傳回數字類型。不過,有一個解決方法可以確保正確處理。

解決方案

解決此問題的關鍵是使用 PHP 的 mysqlnd 驅動程式。與本機驅動程式不同,mysqlnd 支援傳回整數(INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT)和雙精確度浮點(DOUBLE)列的數字類型。

安裝並確認 mysqlnd

要驗證您是否使用 mysqlnd,請執行 php -i。如果 pdo_mysql 部分提到“mysqlnd”,則表示驅動程式存在。否則,請按照以下步驟安裝它:

Ubuntu:

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

確認存在:

安裝後,php -i 現在應該在 pdo_mysql 部分顯示 mysqlnd 版本。

PDO 設定

此外,請確保設定以下PDO 設定正確:
  • PDO::ATTR_EMULATE_PREPARES 應為ATTfalse
傳回值類型

    FLOAT 和 DOUBLE 欄位是以 PHP 浮點數形式傳回。
  • INTEGER 列以 PHP 整數形式傳回。
  • DECIMAL 和 NUMERIC 欄位以字串形式傳回。
範例

透過 mysqlnd 和正確的 PDO 設定,您現在可以查詢 MySQL 表並取得預期的數值格式:

以上是如何確保 MySQL 數字和整數列在 PHP 中作為正確的資料類型傳回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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