<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.pdostatement.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'pdostatement.fetch.php',
    1 => 'PDOStatement::fetch',
    2 => '結果セットから次の行を取得する',
  ),
  'up' => 
  array (
    0 => 'class.pdostatement.php',
    1 => 'PDOStatement',
  ),
  'prev' => 
  array (
    0 => 'pdostatement.execute.php',
    1 => 'PDOStatement::execute',
  ),
  'next' => 
  array (
    0 => 'pdostatement.fetchall.php',
    1 => 'PDOStatement::fetchAll',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/pdo/pdostatement/fetch.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="pdostatement.fetch" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">PDOStatement::fetch</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.1.0, PHP 7, PHP 8, PECL pdo &gt;= 0.1.0)</p><p class="refpurpose"><span class="refname">PDOStatement::fetch</span> &mdash; <span class="dc-title">
   結果セットから次の行を取得する
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-pdostatement.fetch-description">
  <h3 class="title">説明</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>PDOStatement::fetch</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$mode</code><span class="initializer"> = <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-default">PDO::FETCH_DEFAULT</a></code></strong></span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$cursorOrientation</code><span class="initializer"> = <strong><code><a href="pdo.constants.php#pdo.constants.fetch-ori-next">PDO::FETCH_ORI_NEXT</a></code></strong></span></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$cursorOffset</code><span class="initializer"> = 0</span></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>


  <p class="para rdfs-comment">
   PDOStatementオブジェクトに関連付けられた結果セットから1行取得します。
   <code class="parameter">mode</code> パラメータは、PDO
   がその行をどの様に返すかを決定します。
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-pdostatement.fetch-parameters">
  <h3 class="title">パラメータ</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">mode</code></dt>
     <dd>
      <p class="para">
       次のレコードを呼び出し元に返す方法を制御します。
       この値は、<code class="literal">PDO::FETCH_*</code> 定数のどれかで、
       デフォルトは <strong><code><a href="pdo.constants.php#pdo.constants.attr-default-fetch-mode">PDO::ATTR_DEFAULT_FETCH_MODE</a></code></strong> の値
       (そのデフォルトは <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-both">PDO::FETCH_BOTH</a></code></strong>) です。
       <ul class="itemizedlist">
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_ASSOC</code>: は、結果セットに
         返された際のカラム名で添字を付けた配列を返します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_BOTH</code> (デフォルト):
         結果セットに返された際のカラム名と
         0 で始まるカラム番号で添字を付けた配列を返します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_BOUND</code>:
         <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> を返し、結果セットのカラムの値を
         <span class="methodname"><a href="pdostatement.bindcolumn.php" class="methodname">PDOStatement::bindColumn()</a></span>
         メソッドでバインドされた PHP 変数に代入します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_CLASS</code>:
         要求されたクラスの新規インスタンスを返します。
         結果セットのカラムをクラスのプロパティにマップしつつ、
         オブジェクトは初期化されます。
         この処理はコンストラクタをコールする前に行われるので、
         プロパティのアクセス権に関係なく、たとえ
         <code class="literal">readonly</code>
         としてマークされていてもプロパティの値を集めることができます。
         クラスにプロパティが存在しない場合は、マジックメソッド
         <a href="language.oop5.overloading.php#language.oop5.overloading.members" class="link"><span class="methodname"><strong>__set()</strong></span></a>
         が存在すればコールされます。
         マジックメソッドが存在しない場合、public プロパティが動的に作成されます。
         しかしながら、<strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong>
         が指定されている場合は、プロパティの値を集める
         <em>前</em> にコンストラクタがコールされます。
         <code class="parameter">mode</code> に PDO::FETCH_CLASSTYPE が
         含まれている場合 (例: <code class="literal">PDO::FETCH_CLASS |
         PDO::FETCH_CLASSTYPE</code>) は、最初のカラムの値から
         クラス名を決定します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_INTO</code>:
         結果セットのカラムがクラス内の名前付けされたプロパティに
         マッピングされている要求された既存インスタンスを更新します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_LAZY</code>:
         <code class="literal">PDO::FETCH_BOTH</code> と<code class="literal">PDO::FETCH_OBJ</code>の
         組合せで、アクセスされるオブジェクトプロパティ名を作成する <span class="classname"><a href="class.pdorow.php" class="classname">PDORow</a></span> オブジェクトを返します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_NAMED</code>:
         <code class="literal">PDO::FETCH_ASSOC</code> と同じ形式の配列を返します。
         ただし、同じ名前のカラムが複数あった場合は、そのキーが指す値は、
         同じ名前のカラムのすべての値を含む配列になります。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_NUM</code>:
         結果セットに返された際の 0
         から始まるカラム番号を添字とする配列を返します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_OBJ</code>:
         結果セットに返された際のカラム名と同名のプロパティを有する
         匿名のオブジェクトを返します。
        </p></li>
        <li class="listitem"><p class="para">
         <code class="literal">PDO::FETCH_PROPS_LATE</code>:
         <code class="literal">PDO::FETCH_CLASS</code> とともに使用すると、
         まずクラスのコンストラクタを呼び出してから、カラムの値をプロパティに代入します。
        </p></li>
       </ul>
      </p>
     </dd>
    
    
     <dt><code class="parameter">cursorOrientation</code></dt>
     <dd>
      <p class="para">
       スクロール可能なカーソルを表す PDOStatement オブジェクトの場合、
       この値により呼び出し側に返される行を定義します。
       この値は、<code class="literal">PDO::FETCH_ORI_*</code> 定数のどれかと
       する必要があり、
       <code class="literal">PDO::FETCH_ORI_NEXT</code> がデフォルトとなっています。
       PDOStatement に対してスクロール可能なカーソルを要求するためには、
       <span class="methodname"><a href="pdo.prepare.php" class="methodname">PDO::prepare()</a></span> を用いて SQL ステートメントを
       準備する際、
       <code class="literal">PDO::CURSOR_SCROLL</code> に
       <code class="literal">PDO::ATTR_CURSOR</code> 属性を設定する必要があります。
      </p>
     </dd>
    
    
     <dt><code class="parameter">cursorOffset</code></dt>
     <dd>
      <p class="para"> 
       スクロール可能なカーソルを表すPDOStatementオブジェクトの場合で、
        <code class="parameter">cursorOrientation</code> パラメータが
       <code class="literal">PDO::FETCH_ORI_ABS</code>に設定された場合、この値により
       取得される結果セットの行の絶対位置が指定されます。
      </p>
      <p class="para">
       スクロール可能なカーソルを表すPDOStatementオブジェクトの場合で、
       <code class="parameter">cursorOrientation</code> パラメータが
       <code class="literal">PDO::FETCH_ORI_REL</code>に設定された場合、この値は、
       <span class="methodname"><strong>PDOStatement::fetch()</strong></span> がコールされる前のカーソルの
       位置を基準として取得する行の位置を指定します。
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-pdostatement.fetch-returnvalues">
  <h3 class="title">戻り値</h3>
  <p class="para">
   この関数が成功した場合の戻り値は、取得形式によって異なります。
   失敗した場合、または行が残っていない場合は、常に <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> を返します。
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-pdostatement.fetch-errors">
  <h3 class="title">エラー / 例外</h3>
  <p class="para">
<strong><code><a href="pdo.constants.php#pdo.constants.attr-errmode">PDO::ATTR_ERRMODE</a></code></strong> が <strong><code><a href="pdo.constants.php#pdo.constants.errmode-warning">PDO::ERRMODE_WARNING</a></code></strong> に設定されていた場合、<strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong> レベルのエラーが発生します。
</p>
<p class="para">
<strong><code><a href="pdo.constants.php#pdo.constants.attr-errmode">PDO::ATTR_ERRMODE</a></code></strong> が <strong><code><a href="pdo.constants.php#pdo.constants.errmode-exception">PDO::ERRMODE_EXCEPTION</a></code></strong> に設定されていた場合、<span class="classname"><a href="class.pdoexception.php" class="classname">PDOException</a></span> がスローされます。
</p>
 </div>


 <div class="refsect1 examples" id="refsect1-pdostatement.fetch-examples">
  <h3 class="title">例</h3>
  <p class="para">
   <div class="example" id="example-1"><p><strong>例1 異なる取得方法で行を取得する</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$sth </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT name, colour FROM fruit"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">/* Exercise PDOStatement::fetch styles */<br /></span><span style="color: #007700">print </span><span style="color: #DD0000">"PDO::FETCH_ASSOC: "</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"Return next row as an array indexed by column name\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ASSOC</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />print </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br />print </span><span style="color: #DD0000">"PDO::FETCH_BOTH: "</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"Return next row as an array indexed by both column name and number\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_BOTH</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">print_r</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">);<br />print </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br />print </span><span style="color: #DD0000">"PDO::FETCH_LAZY: "</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"Return next row as a PDORow object with column names as properties\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_LAZY</span><span style="color: #007700">);<br />print </span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br />print </span><span style="color: #DD0000">"PDO::FETCH_OBJ: "</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"Return next row as an anonymous object with column names as properties\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$result </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_OBJ</span><span style="color: #007700">);<br />print </span><span style="color: #0000BB">$result</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">NAME</span><span style="color: #007700">;<br />print </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>上の例の出力は以下となります。</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
    [name] =&gt; apple
    [colour] =&gt; red
)

PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
    [name] =&gt; banana
    [0] =&gt; banana
    [colour] =&gt; yellow
    [1] =&gt; yellow
)

PDO::FETCH_LAZY: Return next row as a PDORow object with column names as properties
PDORow Object
(
    [name] =&gt; orange
    [colour] =&gt; orange
)

PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
kiwi</pre>
</div>
    </div>
   </div>
   <div class="example" id="example-2"><p><strong>例2 スクロール可能なカーソルで行を取得する</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">readDataForwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$dbh</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT hand, won, bet FROM mynumbers ORDER BY BET'</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">, array(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">ATTR_CURSOR </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">CURSOR_SCROLL</span><span style="color: #007700">));<br />    </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br />    while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">, </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ORI_NEXT</span><span style="color: #007700">)) {<br />        </span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />        print </span><span style="color: #0000BB">$data</span><span style="color: #007700">;<br />    }<br />}<br />function </span><span style="color: #0000BB">readDataBackwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$dbh</span><span style="color: #007700">) {<br />    </span><span style="color: #0000BB">$sql </span><span style="color: #007700">= </span><span style="color: #DD0000">'SELECT hand, won, bet FROM mynumbers ORDER BY bet'</span><span style="color: #007700">;<br />    </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">prepare</span><span style="color: #007700">(</span><span style="color: #0000BB">$sql</span><span style="color: #007700">, array(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">ATTR_CURSOR </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">CURSOR_SCROLL</span><span style="color: #007700">));<br />    </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">execute</span><span style="color: #007700">();<br />    </span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">, </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ORI_LAST</span><span style="color: #007700">);<br />    do {<br />        </span><span style="color: #0000BB">$data </span><span style="color: #007700">= </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">1</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\t" </span><span style="color: #007700">. </span><span style="color: #0000BB">$row</span><span style="color: #007700">[</span><span style="color: #0000BB">2</span><span style="color: #007700">] . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />        print </span><span style="color: #0000BB">$data</span><span style="color: #007700">;<br />    } while (</span><span style="color: #0000BB">$row </span><span style="color: #007700">= </span><span style="color: #0000BB">$stmt</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_NUM</span><span style="color: #007700">, </span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_ORI_PRIOR</span><span style="color: #007700">));<br />}<br /><br />print </span><span style="color: #DD0000">"Reading forwards:\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">readDataForwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /><br />print </span><span style="color: #DD0000">"Reading backwards:\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">readDataBackwards</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>上の例の出力は以下となります。</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">Reading forwards:
21    10    5
16    0     5
19    20    10

Reading backwards:
19    20    10
16    0     5
21    10    5</pre>
</div>
    </div>
   </div>

   <div class="example" id="example-3"><p><strong>例3 構築の順序</strong></p>
    <div class="example-contents"><p>
     <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-class">PDO::FETCH_CLASS</a></code></strong> でオブジェクトを取得するときには、
     まずオブジェクトのプロパティへの代入を終えてから、そのクラスのコンストラクタを実行します。
     <strong><code><a href="pdo.constants.fetch-modes.php#pdo.constants.fetch-props-late">PDO::FETCH_PROPS_LATE</a></code></strong> を指定した場合はこの順序が逆転します。
     つまり、まずコンストラクタを呼び出してから、プロパティへの代入を行います。
    </p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">Person<br /></span><span style="color: #007700">{<br />    private </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">()<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tell</span><span style="color: #007700">();<br />    }<br /><br />    public function </span><span style="color: #0000BB">tell</span><span style="color: #007700">()<br />    {<br />        if (isset(</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name</span><span style="color: #007700">)) {<br />            echo </span><span style="color: #DD0000">"I am </span><span style="color: #007700">{</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name</span><span style="color: #007700">}</span><span style="color: #DD0000">.\n"</span><span style="color: #007700">;<br />        } else {<br />            echo </span><span style="color: #DD0000">"I don't have a name yet.\n"</span><span style="color: #007700">;<br />        }<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$sth </span><span style="color: #007700">= </span><span style="color: #0000BB">$dbh</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">query</span><span style="color: #007700">(</span><span style="color: #DD0000">"SELECT * FROM people"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setFetchMode</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_CLASS</span><span style="color: #007700">, </span><span style="color: #DD0000">'Person'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$person </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$person</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tell</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">setFetchMode</span><span style="color: #007700">(</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_CLASS</span><span style="color: #007700">|</span><span style="color: #0000BB">PDO</span><span style="color: #007700">::</span><span style="color: #0000BB">FETCH_PROPS_LATE</span><span style="color: #007700">, </span><span style="color: #DD0000">'Person'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$person </span><span style="color: #007700">= </span><span style="color: #0000BB">$sth</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">fetch</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">$person</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">tell</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>上の例の出力は、
たとえば以下のようになります。</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">I am Alice.
I am Alice.
I don&#039;t have a name yet.
I am Bob.</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-pdostatement.fetch-seealso">
  <h3 class="title">参考</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="methodname"><a href="pdo.prepare.php" class="methodname" rel="rdfs-seeAlso">PDO::prepare()</a> - 文を実行する準備を行い、文オブジェクトを返す</span></li>
    <li><span class="methodname"><a href="pdostatement.execute.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::execute()</a> - プリペアドステートメントを実行する</span></li>
    <li><span class="methodname"><a href="pdostatement.fetchall.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::fetchAll()</a> - 結果セットから、残っている行を取得する</span></li>
    <li><span class="methodname"><a href="pdostatement.fetchcolumn.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::fetchColumn()</a> - 結果セットの次行から単一カラムを返す</span></li>
    <li><span class="methodname"><a href="pdostatement.fetchobject.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::fetchObject()</a> - 次の行を取得し、それをオブジェクトとして返す</span></li>
    <li><span class="methodname"><a href="pdostatement.setfetchmode.php" class="methodname" rel="rdfs-seeAlso">PDOStatement::setFetchMode()</a> - この文に対するデフォルトのフェッチモードを設定する</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>