PHP 8.6.0 Beta 1 is available for testing

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_field_nameВозвращает наименование поля

Описание

function pg_field_name(PgSql\Result $result, int $field): string

pg_field_name() возвращает имя поля результата запроса result с порядковым номером field. Нумерация полей начинается с нуля.

Замечание:

Прежнее название функции: pg_fieldname().

Список параметров

result
Экземпляр класса PgSql\Result , который возвращают функции pg_query() , pg_query_params() или pg_execute() (среди прочего).
field

Номер поля, начиная с нуля.

Возвращаемые значения

Наименование поля.

Список изменений

Версия Описание
8.1.0 Параметр result теперь принимает объект PgSql\Result ; раньше параметр принимал тип resource .

Примеры

Пример #1 Получение информации о полях выборки

<?php
 $dbconn = pg_connect("dbname=publisher") or die("Не удалось соединиться с базой");
 $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
 $i = pg_num_fields($res);
 for ($j = 0; $j < $i; $j++) {
 echo "column $j\n";
 $fieldname = pg_field_name($res, $j);
 echo "fieldname: $fieldname\n";
 echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
 echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
 echo "field type: " . pg_field_type($res, $j) . " \n\n";
 }
?>

Результат выполнения приведённого примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar
column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2
column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

  • pg_field_num() - Возвращает порядковый номер именованного поля

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 2 notes

up
2
Anonymous
22 years ago
In fact you can extract the size of the varchar field, by simply sending the following query:
"select a.atttypmod,a.attrelid from pg_attribute as a, pg_class as c where c.relname='$table' AND a.attrelid=c.oid AND a.attname='$field'"
here is a simple function that does that:
function get_field_size($table, $field, $link) {
 
 $result = pg_query($link, "select a.atttypmod,a.attrelid from pg_attribute as a, pg_class as c where c.relname='$table' AND a.attrelid=c.oid AND a.attname='$field'"); 
 
 $data = pg_fetch_object($result);
 
 return ($data->atttypmod - 4); 
 
}
returned value is a size of a given field (also varchar)
up
0
ccasal at compuserve dot com
25 years ago
The pg_fieldname function only returns the unqualified name from the select statement. example:
select c.name, con.name from customer c, contacts con where con.customer_id = c.id;
pg_fieldname will return "name" for both fields instead of c.name and con.name.
This is a PostgreSQL limitation, not a PHP limitation.
if you need different field names you should use :
select c.name as customer_name, con.name as contact_name from customer c, contacts con where con.customer_id = c.id;
then pg_fieldname will return "customer_name" and "contact_name"
+Добавить

AltStyle によって変換されたページ (->オリジナル) /