(PHP 5, PHP 7, PHP 8)
mysqli_stmt::$num_rows -- mysqli_stmt::num_rows -- mysqli_stmt_num_rows — サーバから取得した結果セットの行数を返す
オブジェクト指向型
手続き型
ステートメントハンドルにバッファリングされた 結果セットの行数を返します。この関数は、 mysqli_stmt_store_result() を用いて結果全体をステートメントハンドルにバッファリングした後に使えます。
全ての行をサーバから取得していない場合、
この関数は 0
を返します。
バッファリングされた行数を整数値で返します。
アンバッファリングモードでは、
全ての行をサーバから取得していない場合、
0
を返します。
注意:
行数が
PHP_INT_MAX
より大きい場合、 行数の数値は文字列で返されます。
例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.