locked
IIS7 + PHP5でAccessのメモ型フィールドの取込み

    質問

  • はじめまして。

    タイトルの件でつまずいてしまいまして、質問をさせていただきます。

     

    現在、Windows Server 2008 SP2(64ビット) + IIS7.0 + PHP5.3.3にてプログラムをしています。

    Access2000形式のMDBファイルにODBC経由で接続し、データを取り出そうとしていまして、データベースへの接続は出来ており、数値型、日付型、テキスト型、bool型は問題なく取り出せます。

    ただ、メモ型フィールドの内容が取り出すことが出来ず、何処に原因があるのか分からずお手上げ状態です。

     

    省略してありますが、下記のようなコードです。

    <?php
    function hoge($piyo){
      $cn = odbc_connect("データベース名", "", "");
      $qry = odbc_exec($cn, "SELECT * FROM テーブル名 WHERE ID=" . $piyo ." ORDER BY 日付 DESC");
    
      $i = 0;
      while(odbc_fetch_row($qry) == true){
        $id[$i] = odbc_result($qry, "ID");    //数値型
        $name[$i] = odbc_result($qry, "NAME");  //テキスト型
        $memo[$i] = odbc_result($qry, "MEMO");  //メモ型
        $i += 1;
      }
    }
    ?>
    

    メモ型のところは"false"が返ってきます。

    テスト的にMDB側でメモ型のところをテキスト型に変更をすると取得は出来ます。

     

    宜しくお願いいたします。

     

    2010年12月28日 2:26

回答

  • SJunn さん、こんにちは
    フォーラム オペレーターの星 睦美です。

    >$memo[$i] = odbc_result($qry, "MEMO");  //メモ型
    >メモ型のところは"false"が返ってきます。

     odbc_result でエラーとなっているようですが
    私のほうで調べましたところ、php.net に odbc_result のエラーに関連する情報がありましたのでご紹介します。

    (参考情報)
    ・odbc_result:
    http://php.net/manual/de/function.odbc-result.php

    AKA MBG さん(28-Feb-2003 10:29) のメモ型のデータを扱った場合のエラーに関する投稿、
    lucas at bizzfone dot nl さん(30-Oct-2009 11:24) の大きなサイズのデータフィールドを扱った検証に関する投稿が
    参考になりそうです。

    こちらの情報がお役にたちましたら幸いです。


    マイクロソフト株式会社 フォーラム オペレーター 星 睦美
    2011年1月6日 8:39