【问题标题】:PostgreSQL integer field is returned as string in PHPPostgreSQL 整数字段在 PHP 中作为字符串返回
【发布时间】:2020-07-19 05:53:39
【问题描述】:

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

Table: 
 id: bigint 


{
  id: "1"
}

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

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

【问题讨论】:

标签: php postgresql pdo lumen postgresql-9.5


【解决方案1】:

我搜索了很多,我发现这个问题是因为php does not support bigint in 32bit machine 如果你的机器是 x64,那么你应该检查你的 php x64 是否也是: 您可以通过以下脚本进行检查:

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

此问题不是 PDO 问题,您无法通过更改 PDO 选项来解决它,这是因为 pgsql 驱动程序。 pgsql return bigint as string if the used language doesn't have any type for bigint.

【讨论】:

  • 我的机器是 x64,我的 PHP 是 x64,我的 PostgreSQL 是 x64,它仍然返回 BIGINT 但也返回 INT 和 SMALLINT 作为字符串...:/
  • @Some_user 如果您将所有 int 作为字符串,我认为您应该设置 PDO 选项以将数字更改为整数
猜你喜欢
  • 2011-07-16
  • 2014-02-07
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-03
相关资源
最近更新 更多