../../image/benilogo.gifPHP4 について


PHP で PostgreSQL フィールド名の型を知るには。

 PHPのマニュアル pg_field_type

string pg_field_type ( resource result, int field_number) なのであるが、またまた使っているバージョンでは pg_fieldtype( ) です。
 field と type に _ (アンダーバーが入らない) 旧形式
このテーブルのフィールドの型を取得するには
参考データー
 select \d a_test6;
                Table "a_test6"
 Column |           Type           | Modifiers
--------+--------------------------+-----------
 a1     | character(10)            |
 a2     | character(10)            |
 a3     | timestamp with time zone |
 a4     | timestamp with time zone |
 a5     | interval                 |
Unique keys: a_test6_pkey


  • a1 から a5 までの Type を知るには

基本的にはこのような構造になっている。
当然なんだけど、そのまんま書けば出来るのかどうか実際にやってみる。  実験
pg_field_type.php
<H1>php  pg_fieldtype( )のテストです。bhnmst</H1>
<HR>
<PRE>
まず最初にpg_num_field( )でフィールド数を取得する。<br>
このVersion では pg_numfields() です。<br>
これでフィールドの数を取得する。<br>
for文で pg_fieldname(フィールド数) でフィールド名を取得する。<br>
同時に pg_fieldtype でフィールドの型<br>
<?php

  echo '$dbconn =',"$dbconn  SQL = $mySQL  \n";
  $result = pg_exec($dbconn,$mySQL);       //SQLの発行

  $fcnt = pg_numfields($result);
  echo 'field Count = ',$fcnt,"\n";
  for ($i=0;$i < $fcnt; $i++){
     echo pg_fieldname($result,$i),' ',pg_fieldtype($result,$i),"\n";
  };


  //echo $arr[0],$arr[1],$arr[2],$arr[3],"\n";

  echo("\n");
  //直接 $result を覗いてみる。
  echo $result,"\n";
?>

  • pg_field_type ではなくて pg_fieldtype となります。
実行結果
image/pg_fieldtype.gif
  • a1〜a5 まで表示されている。
  • 別のテーブルで他の型も調べると
    bpchar  : 固定の場合
    varchar   : 可変はこのまま
    numeric  : 数値 numeic
    interval :
    bool
    text
    timestamptz : zone とそうでないの
    

    と概要はこんな型が返ってくるようです。



























目次に戻る

2005/02/06 start ********* Last Update 2006/11/11 15:57 JST

(C) Y.Kondou,2004,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから