首页 >数据库 >mysql教程 >如何确保 MySQL 整数和数字列在 PHP 中作为正确的数据类型返回?

如何确保 MySQL 整数和数字列在 PHP 中作为正确的数据类型返回?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-05 19:56:19779浏览

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

重新启动Apache

安装 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