(PHP 5, PHP 7, PHP 8)
mysqli_result::fetch_object -- mysqli_fetch_object — 結果セットの次の行を取得し、オブジェクトとして返す
オブジェクト指向型
$class
= "stdClass", array $constructor_args
= []): object|null|false手続き型
$result
, string $class
= "stdClass", array $constructor_args
= []): object|null|false
結果セットから1行取得し、それをオブジェクトとして返します。
このオブジェクトは、結果セットのカラム名をプロパティとして持ちます。
値を取得した後は、この関数をコールするたびに結果セットの次の行の値を返します。
もう結果セットに行がない場合には null
を返します。
もし2つ以上のカラムが同じ名前であった場合は、最後に現れた カラムが優先され、以前のあらゆるデータを上書きします。同名の複数のカラムに アクセスする場合、mysqli_fetch_row() を用いて 数値添字配列を使用するか、あるいは SQL クエリ中の SELECT リストに異なる名前を与えるために、カラムにエイリアスを指定する 必要があります。
注意: この関数がオブジェクトのプロパティを設定するのは、 オブジェクトのコンストラクタをコールする前であることに注意しましょう。
注意: この関数により返されるフィー ルド名は 大文字小文字を区別 します。
注意: この関数は、 NULL フィールドに PHPの
null
値を設定します。
result
手続き型のみ: mysqli_query()、mysqli_store_result()、mysqli_use_result()、mysqli_stmt_get_result() が返す mysqli_result オブジェクト。
class
インスタンス化してプロパティを設定後に返すクラスの名前。 省略した場合は stdClass オブジェクトを返します。
constructor_args
オプションのパラメータの配列で、
class
オブジェクトのコンストラクタに渡します。
取得した行を表すオブジェクトを返します。
これは、個別のプロパティが結果セットのカラム名を表します。
結果セットにもう行がない場合には null
を返します。
失敗した場合に false
を返します
バージョン | 説明 |
---|---|
8.0.0 |
constructor_args は、
引数を指定しない場合に []
を受け入れるようになりました。
これより前のバージョンでは、例外がスローされていました。
|
例1 mysqli_result::fetch_object() の例
オブジェクト指向型
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = $mysqli->query($query);
/* オブジェクトの配列を取得します */
while ($obj = $result->fetch_object()) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
手続き型
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";
$result = mysqli_query($link, $query);
/* 連想配列を取得します */
while ($obj = mysqli_fetch_object($result)) {
printf("%s (%s)\n", $obj->Name, $obj->CountryCode);
}
上の例の出力は、 たとえば以下のようになります。
Pueblo (USA) Arvada (USA) Cape Coral (USA) Green Bay (USA) Santa Clara (USA)