Php/docs/mysqli-stmt.store-result

提供:Dev Guides
< Php
移動先:案内検索

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7)

mysqli_stmt::store_result -- mysqli_stmt_store_resultプリペアドステートメントから結果を転送する


説明

オブジェクト指向型

public mysqli_stmt::store_result ( ) : bool

手続き型

mysqli_stmt_store_result ( mysqli_stmt $stmt ) : bool

クエリが結果セットを返す場合(SELECT, SHOW, DESCRIBE, EXPLAIN)、常に mysqli_stmt_store_result() をコールする必要があります。また、この関数は結果セットをクライアントの バッファに格納するだけであり、データを取得するには続けて mysqli_stmt_fetch() をコールします。

注意:

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

パラメータ

stmt
手続き型のみ: mysqli_stmt_init() が返すステートメント ID。


返り値

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


例1 オブジェクト指向型

<?php/* 接続をオープンします */$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* 接続状況をチェックします */ if (mysqli_connect_errno()) {    printf("Connect failed: %s\n", mysqli_connect_error());    exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";if ($stmt = $mysqli->prepare($query)) {    /* クエリを実行します */    $stmt->execute();    /* 結果を保存します */    $stmt->store_result();    printf("Number of rows: %d.\n", $stmt->num_rows);    /* 結果を開放します */    $stmt->free_result();    /* ステートメントを閉じます */    $stmt->close();}/* 接続を閉じます */$mysqli->close();?>

例2 手続き型

<?php/* 接続をオープンします */$link = mysqli_connect("localhost", "my_user", "my_password", "world");/* 接続状況をチェックします */ if (mysqli_connect_errno()) {    printf("Connect failed: %s\n", mysqli_connect_error());    exit();}$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";if ($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));    /* 結果を開放します */    mysqli_stmt_free_result($stmt);    /* ステートメントを閉じます */    mysqli_stmt_close($stmt);}/* 接続を閉じます */mysqli_close($link);?>

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


Number of rows: 20.

参考