[PHP-users 12957] Re: odbc 関数を利用しMSACCESS データをXML データへ

こうちゃ@フリーメール php-users@php.gr.jp
Tue, 04 Feb 2003 12:01:59 +0900


こうちゃです

自分は、始めsybaseで作ってまして、
「sybase」では、sybase_fetch_array()が使えたのですが、
「ODBC」では、odbc_fetch_array()が何故か上手く動作しなかったので、
「odbc_resultで逃げ」ました^−^;;;

サンプル)
if(odbc_fetch_row($result) == TRUE)
{
  for($i = 1; $i <= odbc_num_fields($result); $i++) 
  {
    //インデックス値で登録
    $row[$i - 1] = odbc_result($result, $i); 
    //キー項目で登録
    $row[odbc_field_name($result, $i)] = odbc_result($result, $i); 
  }
}

「インデックス値」とは、0・1・2・3・・のインデックス(何番目)で、
「キー項目」とは、テーブル上の、キーの値です。
ここで2回登録してる理由は、sybaseのsybase_fetch_array()の機能だと、
「インデックス値」からでも、「キー項目」からでも、両方から内容取得可能!
でして、「同等の機能」をodbc_result()でやろうと四苦八苦した結果です><
(※どちらかだけで良いなら、odbc_result()は1つで可能)

例えば、以下のようなテーブルの場合、
  (1行目)  key=tokyo, val=東京
  (2行目)  key=osaka, val=大阪
  (3行目)  key=fukuoka, val=福岡
「大阪」を取り出す方法として、
row[2]と、row["osaka"]の2通りの方法が可能です。

ただ、sybase_fetch_array()の返す配列にて、何故、
この2通りの方法でアクセス可能なのかは、よく分かってません^^;
http://www.php.net/manual/ja/function.sybase-fetch-array.php

余計な部分(sybase_fetch_array()互換など)が多くて、すいません^。^;

しかし、「undefined function」ってのも気になりますよね?><

> Fatal error: Call to undefined function: odbc_fetch_array()とエラーが出てし
> まいます。ありがとうございました。
> エラーを解明し、odbc_resultの利用も考えていきます。ありがとうございました。

あと、デバッグ時は、XML部分は、外したほうがし易いかもしれません
(当方、XML部分は、更に分からないもので^−^;;;)