English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_fetch_object()関数は、結果セットから現在の行を取得し、オブジェクトとして返します。
注意:この関数が返すフィールド名は、大文字小文字を区別します。
PHPの結果オブジェクト(mysqli_resultクラス)は、SELECTやDESCRIBEやEXPLAINクエリが返すMySQLの結果を表します。
mysqli_fetch_object()この関数は、結果オブジェクトをパラメータとして受け取り、指定された結果内で現在の行の内容を検索し、それをオブジェクトとして返します。
mysqli_fetch_object($result, [$class_name, $params]);
番号 | パラメータ及び説明 |
---|---|
1 | result(必需) これは結果オブジェクトを示す識別子です。 |
2 | class_name(任意) インスタンス化するクラスの名前を設定し、属性を返します。 |
3 | params(任意) class_nameオブジェクトコンストラクタに渡すパラメータの配列を指定します。 |
PHP mysqli_fetch_object()関数は、現在の行を保存する文字列属性を持つオブジェクトを返します。もしある行がない場合、この関数はNULLを返します。
この関数は最初にPHPバージョン5で導入され、すべての上位バージョンで使用できます。
以下の例では、mysqli_fetch_object()関数の使い方(手続き型スタイル),結果セットのすべての行を返し、各フィールドの値を出力します:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("テーブルを作成します.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')"); mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')"); mysqli_query($con, "INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')"); print("記録を挿入.....\n"); //テーブルの内容を検索 $res = mysqli_query($con, "SELECT * FROM myplayers"); //すべての行をオブジェクトとして取得 while($obj = mysqli_fetch_object($res)){ print("ID: ".$obj->ID."\n"); print("First_Name: ".$obj->First_Name."\n"); print("Last_Name: ".$obj->Last_Name."\n"); print("Place_Of_Birth: ".$obj->Place_Of_Birth."\n"); print("Country: ".$obj->Country."\n"); } //ステートメントを終了します mysqli_free_result($res); //接続を閉じます mysqli_close($con); ?>
出力結果
テーブルを作成します..... 記録を挿入..... ID: 1 First_Name: Sikhar 姓: Dhawan 出生地: Delhi 国: インド ID: 2 名: Jonathan 姓: Trott 出生地: CapeTown 国: 南アフリカ ID: 3 名: Kumara 姓: Sangakkara 出生地: Matale 国: スリランカ
オブジェクト指向スタイルでは、この関数の構文は以下の通りです$result-> fetch_object();。以下は、オブジェクト指向スタイルでのこの関数の例です;
<?php //接続を確立します $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("CREATE TABLE Test(Name VARCHAR(255), Age INT)"); $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)"); print("テーブルを作成します.....\n"); $stmt = $con -> prepare( "SELECT * FROM Test WHERE Name in(?, ?)"); $stmt -> bind_param("ss", $name1, $name2); $name1 = 'Raju'; $name2 = 'Rahman'; //ステートメントを実行します $stmt->execute(); //検索結果 $result = $stmt->get_result(); //すべての行を配列として取得します while($obj = $result->fetch_object()){ print("名前: ".$obj->Name."\n"); print("年齢: ".$obj->Age."\n"); } //ステートメントを終了します $stmt->close(); //接続を閉じます $con->close(); ?>
出力結果
テーブルを作成します..... 名前: Raju 年齢: 25 名前: Rahman 年齢: 30