mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7, PHP 8)

mysqli_stmt::store_result -- mysqli_stmt_store_result内部バッファに結果を保存する

説明

オブジェクト指向型

public mysqli_stmt::store_result(): bool

手続き型

mysqli_stmt_store_result(mysqli_stmt $statement): bool

有効な結果セットを生成するクエリの場合(SELECT, SHOW, DESCRIBE, EXPLAIN)、かつ 完全な結果セットをバッファリングする必要がある場合のみ、 この関数をコールすべきです。 バッファリングされたデータを取得するには続けて mysqli_stmt_fetch() をコールします。

注意:

その他のクエリでは mysqli_stmt_store_result() をコールする必要はありません。しかし、もしコールしてしまったとしても パフォーマンスへの悪影響は一切ありません。クエリが結果セットを 返すかどうかは、mysqli_stmt_result_metadata()false を返すかどうかで調べられます。

パラメータ

stmt

手続き型のみ: mysqli_stmt_init() が返す mysqli_stmt オブジェクト。

戻り値

成功した場合に true を、失敗した場合に false を返します。

例1 オブジェクト指向型

<?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 Name LIMIT 20";
$stmt $mysqli->prepare($query);
$stmt->execute();

/* 結果を内部バッファに保存します */
$stmt->store_result();

printf("Number of rows: %d.\n"$stmt->num_rows);

例2 手続き型

<?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 Name LIMIT 20";
$stmt mysqli_prepare($link$query);
mysqli_stmt_execute($stmt);

/* 結果を内部バッファに保存します */
mysqli_stmt_store_result($stmt);

printf("Number of rows: %d.\n"mysqli_stmt_num_rows($stmt));

上の例の出力は以下となります。

Number of rows: 20.

参考

関連キーワード:  mysqli, stmt, result, 内部, 保存, バッファ, store, コール, セット, 手続き