PHP Conference Japan 2024

pg_field_size

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

pg_field_size 傳回指定欄位的內部儲存大小

說明

pg_field_size(PgSql\Result $result, int $field): int

pg_field_size() 傳回指定 PostgreSQL result 中欄位編號的內部儲存大小(以位元組為單位)。

注意:

此函式以前稱為 pg_fieldsize()

參數

result

一個 PgSql\Result 實例,由 pg_query()pg_query_params()pg_execute()(以及其他函數)返回。

欄位

欄位編號,從 0 開始。

返回值

內部欄位儲存大小(以位元組為單位)。-1 表示可變長度欄位。

更新日誌

版本 說明
8.1.0 result 參數現在需要一個 PgSql\Result 實例;先前需要一個 資源

範例

範例 #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
"欄位 $j\n";
$fieldname = pg_field_name($res, $j);
echo
"欄位名稱: $fieldname\n";
echo
"顯示長度: " . pg_field_prtlen($res, $fieldname) . " 個字元\n";
echo
"儲存長度: " . pg_field_size($res, $j) . " 位元組\n";
echo
"欄位類型: " . 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

參見

新增筆記

使用者貢獻筆記 3 則筆記

ij at NOSPAM dot irj dot co dot za
19 年前
使用 SQL 查詢檢視表格的檔案結構

select pg_class.relname, pg_attribute.attname, pg_type.typname, pg_type.typlen from pg_class, pg_attribute, pg_type where pg_class.relname = 'YOURTABLENAME' and pg_class.oid = pg_attribute.attrelid and pg_type.oid = pg_attribute.atttypid having attnum > 0
php at tribun dot de
19 年前
function get_create_syntax( $table )
{
$qry = "
SELECT *
FROM $table
LIMIT 1
";
$res = pg_query( $qry );
$row = pg_fetch_assoc( $res );

$create = "CREATE TABLE $table \n(\n";

$item = array();
for( $i = 0; $i < count( $row ); $i++ )
{
$name = pg_field_name( $res, $i );
$type = pg_field_type( $res, $i );
$size = pg_field_size( $res, $i );

$item[$i] = '"'.$name.'" '.$type;

$qry = "
SELECT a.atttypmod AS size,
a.attnotnull AS notnull
FROM pg_attribute AS a,
pg_class AS c
WHERE c.relname = '$table'
AND a.attrelid = c.oid
AND a.attname = '$name'
";
$res2 = pg_query( $qry );
$out = pg_fetch_object( $res2 );

if( $out -> size != -1 )
{
$item[$i] .= '('.( $out -> size - 4 ).')';
}
if( $out -> notnull == 't' )
$item[$i] .= ' NOT';

$item[$i] .= ' NULL';

}
$create .= implode( ",\n", $item ) ."\n);";

return $create;
}
alex at linuxNOSPAM dot org dot pe
22 年前
我如何擷取 PostgreSQL 表格的結構?

我想撰寫動態 PHP 程式碼,查看 PostgreSQL 表格,並印出欄位的名稱、類型和大小
To Top