首页 > 解决方案 > PostgreSQL 整数字段在 PHP 中作为字符串返回

问题描述

当我使用查询生成器执行查询时,我正在使用PHP 7.2.12PostgreSQL 9.5.5 和 Lumen 7,Lumen 给我数字列作为字符串。

Table: 
 id: bigint 


{
  id: "1"
}

我已经搜索过并且有MySQL的答案,但这不适用于 PostgreSQL。

我的同事在 Linux 中没有这个问题。但我使用的是 Windows 10,但我不知道必须设置什么配置才能解决此问题。

标签: phppostgresqlpdolumenpostgresql-9.5

解决方案


我搜索了很多,我发现这个问题是因为如果你的机器是 x64,php 在 32 位机器上不支持 bigint,所以你应该检查你的 php x64 是否也是:你可以通过以下脚本检查它:

echo (PHP_INT_SIZE === 8) ? "64 bit " : "32 bit ";

这个问题不是 PDO 问题,您无法通过更改 PDO 选项来解决它,这是因为 pgsql 驱动程序。如果使用的语言没有任何 bigint 类型,则 pgsql 将 bigint 作为字符串返回。


推荐阅读