mysqli_result::__construct

mysqli_result オブジェクトを構築する

説明

public mysqli_result::__construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)

このメソッドは、新しい mysqli_result オブジェクトを構築します。

mysqli_real_querymysqli_multi_query 関数をコールした後に mysqli_result を作成するために使います。 このオブジェクトを手動で作成することは、 mysqli_store_resultmysqli_use_result をコールすることと同じです。

パラメータ

link

手続き型のみ: mysqli_connect あるいは mysqli_init が返す mysqliオブジェクト。

result_mode

MySQL サーバーから結果をどう返すかを、 以下の定数のいずれかで指定できます。

MYSQLI_STORE_RESULT (デフォルト) - バッファリングされた結果セットを使って、 mysqli_result オブジェクトを作成します。

MYSQLI_USE_RESULT - バッファリングされていない結果セットを使って、 mysqli_result オブジェクトを構築します。 取得されるのを待っている保留中のレコードが存在する限り、 接続はビジーとなり、 それ以後のクエリの呼び出しは Commands out of sync エラーが発生します。 このエラーを避けるには、 全てのレコードをサーバーから取得するか、 mysqli_free_result をコールして結果セットを破棄しなければいけません。 行を取得するために、接続はオープンしたままでなければいけません。

エラー / 例外

mysqli のエラー報告 (MYSQLI_REPORT_ERROR) が有効になっており、かつ要求された操作が失敗した場合は、警告が発生します。さらに、エラー報告のモードが MYSQLI_REPORT_STRICT に設定されていた場合は、mysqli_sql_exception が代わりにスローされます。

例1 mysqli_result オブジェクトを作る

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Select queries return a result set */
$mysqli->real_query("SELECT Name FROM City LIMIT 10");

$result = new mysqli_result($mysqli);
printf("Select returned %d rows.\n", $result->num_rows);

上の例の出力は、 たとえば以下のようになります。

Select returned 10 rows.

参考

  • mysqli_multi_query
  • mysqli_real_query
  • mysqli_store_result
  • mysqli_use_result