首頁 >後端開發 >php教程 >如何確保 MySQL 數字列返回為 PHP 整數和數字?

如何確保 MySQL 數字列返回為 PHP 整數和數字?

Linda Hamilton
Linda Hamilton原創
2024-12-08 06:44:10972瀏覽

How to Ensure MySQL Numeric Columns Return as PHP Integers and Numerics?

從 MySQL 傳回整數和數字列作為 PHP整數和數字

問題:
查詢結果將所有列作為字串類型返回,儘管在

複雜性:
挑戰來自於驅動程式實現的限制。某些驅動不支援將數字類型傳回為 PHP 整數或數字,導致資料庫的資料類型與 PHP 表示不符。

解決方案:
解決此問題的關鍵問題在於確保 mysqlnd 驅動程式用於 PHP。 mysqlnd 是 MySQL 本機驅動程序,為正確傳回數字類型提供必要的支援。

如何安裝mysqlnd:
對於Ubuntu 系統:

  1. 刪除目前本機驅動程式: apt-get remove php5-mysql
  2. 刪除目前本機驅動程式: apt-get remove php5-mysql
  3. 安裝mysqlnd: apt-get install php5-mysqlnd
  4. 重啟Apache: service apache2 restart

檢查是否使用了mysqlnd:

安裝後,使用中。在輸出中尋找以下行:
PDO Driver for MySQL => enabled
Client API version => mysqlnd 5.0.10 - 20111026 -

基本PDO 設定:

為了確保正確處理數值,兩個PDO 設定至關重要:
  1. PDO::ATTR_EMULATE_PREPARES:
  2. 將其設定為false提高效能並避免潛在問題。
  3. PDO::ATTR_STRINGIFY_FETCHES:
  4. 停用此函數可防止驅動程式將數值轉換為字串。

設定這些後標誌,您的查詢結果現在將如預期返回整數和數字列。以下是傳回值的範例:
object(stdClass)[915]
  public 'integer_col' => int 1
  public 'double_col' => float 1.55
  public 'float_col' => float 1.5
  public 'decimal_col' => string '1.20' (length=4)
  public 'bigint_col' => string '18446744073709551615' (length=20)

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn