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

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-05 19:56:19759瀏覽

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

從MySQL 返回整數和數字作為PHP 中的整數和數字

許多開發人員遇到MySQL 查詢將整數和數字列傳回為PHP 中的字串。這是由於本機 MySQL 驅動程式的預設行為,它不支援傳回數字類型。

解決方案:使用 mysqlnd 驅動程式

解決方案是使用 PHP 的 mysqlnd 驅動程式。 mysqlnd 驅動程式是一個更現代、更豐富的驅動程序,它能夠將數字列傳回為整數和數字。

識別您是否正在使用mysqlnd

要檢查您是否正在使用mysqlnd 驅動程序,請打開PHP 資訊(php -i) 頁面並查看「PDO Driver for MySQL”部分。如果那裡提到“mysqlnd”,那麼您正在使用 mysqlnd 驅動程式。否則,您很可能會使用本機 MySQL 驅動程式。

在Ubuntu 上安裝mysqlnd

要在Ubuntu 上安裝mysqlnd 驅動程序,您可以使用以下命令:

sudo apt-get install php5-mysqlnd

安裝mysqlnd 驅動程式後,您需要重新啟動 Apache 以使變更生效。

驗證驅動程式

Apache 重新啟動後,您可以透過開啟 PHP 資訊頁面 (php -i) 再次檢查 mysqlnd 驅動程式是否正在使用。現在應該在「MySQL 的 PDO 驅動程式」部分中明確提及「mysqlnd」。

PDO 設定

確保將下列 PDO 設定設為false防止潛在問題:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);

已退回值

根據資料庫類型,將傳回不同類型的數據,如下所示:

  • 浮點類型(FLOAT、DOUBLE)將以PHP 浮點形式傳回。
  • 整數型別(INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT)將會傳回 PHP 整數。
  • 定點型別(DECIMAL、NUMERIC)將傳回字串。
  • 值大於 9223372036854775807(在 64 位元系統上)的 BIGINT 會傳回字串.

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

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