#freeze
 #setlinebreak(on)
 * PDO::FETCH_CLASS 利用クラス指定 [#oc94352a]
 #htmlinsert(googleAdsense.html)
 #ref(http://dozo.rgr.jp/img/img52_pecl.gif,right,nolink,around,PHP::PECL)
 
 [[FETCH_CLASS>PECL/pdo/fetch/FETCH_CLASS]]は他のFETCHパラメータと利用場所が異なる。
 動きとしては[[PDO::FETCH_OBJ>PECL/pdo/fetch/FETCH_OBJ]]と似ている。
 
 
 **利用できるメソッド [#jb1d85ac]
  PDOクラス
  query
  PDOStatementクラス
  fetch,setFetchMode
 
 **組み合わせ可能なFETCHパラメータ [#t8ca4173]
  PDO::FETCH_CLASSTYPE
  PDO::FETCH_GROUP
 
 **単独使用サンプルコード [#ge04eb5d]
     $sql = <<<SQL
         SELECT * FROM user_table 
  SQL;
     $stmtObj = $dbObj->query( $sql, PDO::FETCH_CLASS, 'testClass', array( 0 => 1234, 1 => 'test' )  );
     while ( $rowObjs = $stmtObj->fetchAll() )
     print_r( $rowObjs );
  
  class testClass
  {
     private $int;
     private $str;
     protected function testClass( $int = 0, $str = 1 )
     {
         $this->int = $int;
         $this->str = $str;
     }
  }
 
 ***結果 [#v4da7e03]
  Array
  (
     [0] => testClass Object
         (
             [int:private] => 1234
             [str:private] => test
             [users_id] => 1
             [users_name] => TARO
             [users_email] => taro@matrix.jp
         )
  
     [1] => testClass Object
         (
             [int:private] => 1234
             [str:private] => test
             [users_id] => 2
             [users_name] => JIRO
             [users_email] => jiro@matrix.jp
         )
  ・・・
 
 FETCH_CLASSは単独で使用することはできない。
 必ず使用するクラスを指定する必要がある。
 構文は
  method( PDO::FETCH_CLASS, '(ユーザー定義クラス名)' [, (コンストラクタの引数)] );
 だ。
 setFetchClass, queryで指定が可能。
 また、fetchObjectで指定することも出来る。
 下記コードは全部同じである
 queryメソッドで指定
     $stmtObj = $dbObj->query( $sql, PDO::FETCH_CLASS, 'testClass', array( 0 => 1234, 1 => 'test' ) );
 setFetchModeメソッドで指定
     $stmtObj = $dbObj->query( $sql );
     $stmtObj->setFetchMode( PDO::FETCH_CLASS, 'testClass', array( 0 => 1234, 1 => 'test' ) );
 fetchObjectメソッドで指定
     $stmtObj = $dbObj->query( $sql );
     while ( $rowObj = $stmtObj->fetchObject( 'testClass', array( 0 => 1234, 1 => 'test' )) )
         $rowObjs[] = $rowObj;
 
 **注意 [#a546de2d]
 指定するクラスのコンストラクタは__constructorではなくPHP4風のものでなければならない。
 (理由は不明)
 %%指定するクラスのコンストラクタは__constructorではなくPHP4風のものでなければならない。%%
 %%(理由は不明)%%
 
 
 #htmlinsert(googleAdsense.html)
 -5.2.0でテストしたら__construct()も大丈夫です。ちなみにコンストラクタ内でマッピングされた変数を参照できます。 -- [[GOMO]] &new{2007-02-18 16:01:52 (日)};
 
 #comment
 
 


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較