我正在尝试从表中获取列数:
$query = "select count(column_name) from information_schema.columns where table_name = '".$tableName."'";
$columns = pg_query($query);
echo $columns;
但我得到一个神秘的数字而不是数字Resource id #61
。
转换为其他类型,如string
或int
没有帮助。
我正在尝试从表中获取列数:
$query = "select count(column_name) from information_schema.columns where table_name = '".$tableName."'";
$columns = pg_query($query);
echo $columns;
但我得到一个神秘的数字而不是数字Resource id #61
。
转换为其他类型,如string
或int
没有帮助。
pg_query
向查询结果返回一个资源,要获取实际的行,可以使用任何pg_fetch_*
函数,例如pg_fetch_assoc
所有这些都在 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
显式传递给调用的习惯……在处理具有多个连接的大型项目时,不知道您使用的是什么连接。
pg_query()
返回资源,这是正确的行为。您可以在手册中检查它(无论如何您肯定应该这样做)。
要从该资源中获取行,您可以使用pg_fetch_all()
或之类的函数pg_fetch_row()
。阅读两者并决定在这种情况下哪一个会更好。
你可以试试这个
$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;