DB_common::setFetchMode()

DB_common::setFetchMode() – デフォルトのフェッチモードを設定する

Synopsis

void setFetchMode ( integer $fetchmode , string $object_class = stdClass )

Description

fetch*() および get*() メソッドで 使用される、デフォルトのフェッチモードを設定します。

Parameter

integer $fetchmode

DB_FETCHMODE_ORDEREDDB_FETCHMODE_ASSOC あるいは DB_FETCHMODE_OBJECT

詳細な情報は、下の を参照ください。

string $object_class

$fetchmodeDB_FETCHMODE_OBJECT に設定されている場合に 使用されます。

このパラメータを DB_row に設定すると、 結果のデータを DB_row オブジェクトの新しいインスタンスに 格納することができます。

Return value

void - 成功した場合は何も返しません。 失敗した場合に DB_Error オブジェクトを返します。

Throws

Possible PEAR_Error values
エラーコード エラーメッセージ 原因 対応法
NULL invalid fetchmode mode 指定したフェッチモードが存在しないか、使用中のバージョンの DB では実装されていません。 引数の記述内容、および使用中の DB のバージョンを調べます。

Note

This function can not be called statically.

Example

DB_FETCHMODE_ORDERED (デフォルト)

数値添字の配列が返されます。要素の並び順は、SELECT 文の内容によって 決まります。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_ORDERED);

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 
'カラム a は ' $row[0];
?>

出力は以下のようになります。

    
Array
(
    [0] => 28
    [1] => hi
)
カラム a は 28
    

DB_FETCHMODE_ASSOC

カラム名をキーとする連想配列が返されます。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_ASSOC);

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 
'カラム a は ' $row['a'];
?>

出力は以下のようになります。

    
Array
(
    [a] => 28
    [b] => hi
)
カラム a は 28
      

DB_FETCHMODE_OBJECT

カラム名をプロパティとして持つオブジェクトが返されます。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_OBJECT);

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 
'カラム a は ' $row->a;
?>

出力は以下のようになります。

    
stdClass Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28
      

DB_FETCHMODE_OBJECT および DB_row

setFetchMode() のオプションのパラメータ $object_classDB_row に設定されている場合は、DB_row オブジェクトが返されます。

<?php
// $db という名前の DB オブジェクトを取得しているとします...
$db->setFetchMode(DB_FETCHMODE_OBJECT'DB_row');

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 
'カラム a は ' $row->a;
?>

出力は以下のようになります。

    
db_row Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28
    

DB_FETCHMODE_OBJECT で独自のオブジェクトを使用する (PHP 4)

<?php
// $db という名前の DB オブジェクトを取得しているとします...

class SomeResult {
    function 
SomeResult($data) {
        foreach (
$data as $key => $value) {
            
$this->$key $data[$key];
        }
    }
}

$db->setFetchMode(DB_FETCHMODE_OBJECT'SomeResult');

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 
'カラム a は ' $row->a;
?>

出力は以下のようになります。

    
SomeResult Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28
    

DB_FETCHMODE_OBJECT で独自のオブジェクトを使用する (PHP 5)

<?php
// $db という名前の DB オブジェクトを取得しているとします...

class SomeResult {
    public 
$row_data;
    function 
__construct($data) {
        
$this->row_data $data;
    }
    function 
__get($variable) {
        return 
$this->row_data[$variable];
    }
}

$db->setFetchMode(DB_FETCHMODE_OBJECT'SomeResult');

$res =& $db->query('SELECT a, b FROM phptest WHERE a = 28');
$row =& $res->fetchRow();

print_r($row);
echo 
'カラム a は ' $row->a;
?>

出力は以下のようになります。

    
SomeResult Object
(
    [a] => 28
    [b] => hi
)
カラム a は 28
    
現在のトランザクションをロールバックする (Previous) PEAR DB の実行時オプションを設定する (Next)
Last updated: Thu, 17 Apr 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.