pg_fetch_all()将整数打印为字符串

时间:2016-07-31 22:03:01

标签: php postgresql postgresql-9.5

我有

$result = pg_query($dbconn, 'SELECT * FROM domain');
$d = pg_fetch_all($result);
var_dump($d);

结果是

array(2) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "1"
    ["domainname"]=>
    string(15) "stackoverflow.com"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(1) "2"
    ["domainname"]=>
    string(13) "example.com"
  }
}

这里的问题是id s显示为字符串,即使它们是整数。如何自动将它们作为整数?

1 个答案:

答案 0 :(得分:-1)

您可以手动将字符串转换为适当的数字类型,并验证字符串表示的数字是否适合该数字类型。

尽管很多时候数据库内部使用的整数与php使用的整数类型的字节大小相同,但是有太多特殊情况(比如64位数据库号回到32位PHP二进制文件,任何特定的自动转换政策都可以接受。

更一般地说,PostgreSQL有numericdecimal类型,在小数点前有#34;最多131072位数"和"小数点后最多16383位" (参见表8-2 [在PostgreSQL文档中])。(https://www.postgresql.org/docs/9.1/static/datatype-numeric.html