mysqli_result::__construct
mysqli_result オブジェクトを構築する
説明
public mysqli_result::__construct(mysqli $mysql
, int $result_mode
= MYSQLI_STORE_RESULT
)
mysqli_real_query や
mysqli_multi_query 関数をコールした後に
mysqli_result を作成するために使います。
このオブジェクトを手動で作成することは、
mysqli_store_result
や
mysqli_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);
参考
- mysqli_multi_query
- mysqli_real_query
- mysqli_store_result
- mysqli_use_result