2009-08-22 91 views
2

如何在PHP中通过Postgres编译整数数据?通过PHP从Postgres正确读取数据类型

我的整数的字符串作为以下节目由var_dump ($_SESSION)

'logged_in' => int 1 
    'user_id' => string '9' (length=1)     // should be int 
    'a_moderator' => string '0' (length=1)    // should be int 

我用下面的代码,这显然是问题的pg_preparepg_execute后的源代码编译的值。

while ($row = pg_fetch_array($result)) { 
     $user_id = $row['user_id']; 
    } 
+0

谢谢你的回答! – 2009-08-22 03:01:42

回答

1

可以使用intval将字符串转换为整数:

$str = "5"; 
$num = intval($str); 

或强制类型转换:

$str = "5"; 
$num = (int) $str; 

//this works too 
$num = (integer) $str; 

一些测试代码:

<?php 
    $str = "10"; 
    $num = intval($str); 
    //$num = (int)$str; 

    if ($str === 10) echo "String"; 
    if ($num === 10) echo "Integer"; 
?> 

延伸阅读:

Type Jugging

3

这是普通的PHP数据库扩展到返回所有的数据类型为字符串,因为某些SQL数据类型不能在PHP原生数据类型来表示。

实施例:在PostgreSQL BIGINT(8字节整数数据类型)将溢出int PHP类型(PHP除非与64位的支持编),并且被铸造成float,其可能会失去正确性。