2016-07-31 124 views
3

pg_fetch_all()打印整數作爲字符串

$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的顯示爲,即使他們都是整數的字符串。我怎樣才能讓他們自動整數?

+0

好的..我看到了.. nvm ..我很快就會刪除這個!hehe xD – FirstOne

+0

@FirstOne,它是整數http://imgur.com/a/r8fW9誰將它轉換爲一個字符串並不重要,我喜歡它作爲原始類型 – ilhan

+0

顯示你的模式嗎?我從來沒有見過pg_fetch_all這樣做 - 儘管它可能是var_dump,試試'print_r()'而不是 – alzee

回答

-1

您可以手動將字符串轉換爲適當的數字類型,並驗證字符串表示的數字是否適合該數字類型。

儘管數據庫內部使用的整數可以與php使用的整數類型的字節數相同,但是有太多特殊情況(例如返回到32位PHP二進制文件的64位數據庫數字等),任何特定的自動轉換策略都可以接受。更一般地說,PostgreSQL有numericdecimal類型,它們的「小數點前最多131072位」和「小數點後最多16383位」(見表8-2 [在PostgreSQL文檔中])。 (https://www.postgresql.org/docs/9.1/static/datatype-numeric.html

+0

但是如果你使用MySQL可以將整數和字符串作爲字符串自動獲取https://jpauli.github.io/2014/07/ 21/php-and-mysql-communication-mysqlnd.html。 PostgreSQL也應該有一種方法。 – ilhan

+0

當然有。只需自動完成此操作即可。 – NovaDenizen