如何在 PHP 中将 MySQL 中的整数和数字列作为整数和数字返回?
在 PHP 中使用 MySQL 数据库时,确保正确检索和表示整数和数字列至关重要。 PHP 中的 PDO 扩展提供了一种方法来执行此操作,但如果未使用 MySQL 本机驱动程序,则可能会出现问题。
为什么整数列以字符串形式返回
MySQL 本机驱动程序不支持以整数和数字形式返回数值。这意味着,默认情况下,所有列都作为字符串检索。即使 PDO 标志 PDO::ATTR_STRINGIFY_FETCHES 设置为 false,驱动程序的行为也不会改变。
如何修复它
解决方案是切换到 mysqlnd PHP 驱动程序。该驱动程序支持以原生 PHP 类型返回整数和数值。
安装
要在 Ubuntu 上安装 mysqlnd 驱动程序,您可以使用以下步骤:
验证
要验证是否正在使用 mysqlnd 驱动程序,请运行 php -i。输出现在应在 pdo_mysql 部分中包含“mysqlnd”。
PDO 设置
确保正确设置以下 PDO 设置:
返回值
使用 mysqlnd 驱动程序,使用以下返回类型:
示例
切换到 mysqlnd 驱动后,您将能够正确检索整数和数值:
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); $result = $pdo->query('SELECT * FROM table'); $row = $result->fetch(PDO::FETCH_OBJ); echo $row->integer_col; // 1 (int) echo $row->double_col; // 1.55 (float) echo $row->decimal_col; // '1.20' (string) echo $row->bigint_col; // '18446744073709551615' (string)
以上是如何在 PHP 中从 MySQL 检索整数和数字列作为其本机类型?的详细内容。更多信息请关注PHP中文网其他相关文章!