不幸的是,pg_fetch_all_columns() 不支持按名称获取列 - 如果您想这样做,需要使用 pg_field_num() 作为中间手段。
例如
<?php
if ($foo)
$cols = "email_address";
else
$cols = "last_name, middle_init";
$result = pg_query("Select first_name, $info, birthday from users_table");
// 问题 - 列 #2 指的是 'birthday' 还是 'middle_init' 字段?
$array = pg_fetch_all_columns($result, 2);
// 不起作用,必须使用列号而不是名称
$array = pg_fetch_all_columns($result, 'birthday');
// 起作用了
$array = pg_fetch_all_columns($result, pg_field_num($result, 'birthday'));
?>