2009-08-22 59 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,其可能會失去正確性。