DB_common::setFetchMode() -- デフォルトのフェッチモードを設定する
説明
fetch*() および get*() メソッドで
使用される、デフォルトのフェッチモードを設定します。
パラメータ
- integer
$fetchmode
DB_FETCHMODE_ORDERED、
DB_FETCHMODE_ASSOC あるいは
DB_FETCHMODE_OBJECT。
詳細な情報は、下の
例 を参照ください。
- string
$object_class
$fetchmode が
DB_FETCHMODE_OBJECT に設定されている場合に
使用されます。
このパラメータを DB_row に設定すると、
結果のデータを DB_row オブジェクトの新しいインスタンスに
格納することができます。
返り値
void - 成功した場合は何も返しません。
失敗した場合に DB_Error オブジェクトを返します。
例外・エラー
表 39-1PEAR_Error の値
エラーコード | エラーメッセージ | 原因 | 対応法 |
---|
NULL |
invalid fetchmode mode
|
指定したフェッチモードが存在しないか、使用中のバージョンの
DB では実装されていません。
|
引数の記述内容、および使用中の DB のバージョンを調べます。
|
注意
この関数は、スタティックにコールする
ことはできません。
例
例 39-2
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 |
|
例 39-3
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 |
|
例 39-5
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 |
|
例 39-6
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 |
|