2013-10-08 36 views
0

我試圖從表中獲取的列數:獲取資源,而不是數量計數(列)的結果

$query = "select count(column_name) from information_schema.columns where table_name = '".$tableName."'"; 
$columns = pg_query($query); 
echo $columns; 

但不是數量,我得到一個神祕的Resource id #61
轉換爲其他類型,如stringint沒有幫助。

+0

曾經查了一下pg_query()返回? –

+0

語法是'$結果= pg_query($康恩, 「SELECT作者,電子郵件從作者」);'按手動http://php.net/manual/en/function.pg-query.php –

+0

@Fred -ii-第一個參數是可選的,所以你的評論在這種情況下什麼也不給。 –

回答

1

pg_query返回資源的查詢結果,以獲得實際的行,你可以使用任何的pg_fetch_*功能,如pg_fetch_assoc

所有這一切都是有據可查的on php.net/pg_query。看功能的簽名:

resource pg_query ([ resource $connection ], string $query) 
//return type function name (params) 

因此,你需要的是:

$result = pg_query($query); 
$columns = pg_fetch_all($result); 
var_dump($columns); 

另外,請進入通過連接資源爲pg_query通話明確的習慣...有沒有告訴你正在使用的連接,在一個相當大的項目時,有多個連接。

1

pg_query()回報的資源,它是正確的行爲。你可以在手冊中檢查它(無論如何你肯定應該做的)。

要從該資源獲取行,您可以使用像pg_fetch_all()pg_fetch_row()這樣的函數。閱讀有關兩者並決定哪一個更好。

-1

你可以試試這個

$query = "SHOW COLUMNS FROM '".$tableName."' "; 
$result= pg_query($query); 

if (!$result) { 
    echo "An error occurred.\n"; 
    exit; 
} 
$i = 1; 
while ($row = pg_fetch_row($result)) { 
    echo "Column[$i] names: ".$row[0].""; 
    echo "<br />"; 
    $i++; 
} 

echo "Column Count: ".$i; 
相關問題