English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基礎チュートリアル

PHP 高級チュートリアル

PHP & MySQL

PHP 参考マニュアル

PHP mysqli_stmt_num_rows()関数の使用法および例

PHP MySQLi リファレンスマニュアル

mysqli_stmt_num_rows()関数は、文の結果セットに含まれる行数を返します。

定義および使用法

mysqli_stmt_num_rows()関数は文オブジェクトを引数として受け取り、指定された文の結果セットに含まれる行数を返します。

構文

mysqli_stmt_num_rows($stmt)

引数

番号引数及び説明
1

stmt(必須)

これはSQLクエリを実行する文のオブジェクトを表します。

返り値

PHP mysqli_stmt_num_rows()関数は、結果セットに返される行数を示す整数値を返します。

PHPバージョン

この関数は最初にPHPバージョン5で導入され、すべての上位バージョンで使用できます。

オンラインサンプル

以下の例では、mysqli_stmt_num_rows()関数の使用法(手続き型スタイル)-

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   mysqli_query($con, "CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
   print("テーブルの作成中.....\n");
   mysqli_query($con, "insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27);
   print("記録を挿入中.....\n");
   //レコードの読み取り
   $stmt = mysqli_prepare($con, "SELECT * FROM Test");
   //ステートメントを実行
   mysqli_stmt_execute($stmt);
   mysqli_stmt_store_result($stmt);
   //行数
   $count = mysqli_stmt_num_rows($stmt);
   print("テーブルの行数: ".$count."\n");
   //ステートメントを終了
   mysqli_stmt_close($stmt);
   //接続を閉じる
   mysqli_close($con);
?>

出力結果

テーブルを作成.....
レコードを挿入.....
テーブルの行数: 3

オンラインサンプル

オブジェクト指向スタイルでは、この関数の構文は$con->num_rows;。以下は、オブジェクト指向スタイルでのこの関数の例です;

<?php
   //接続の確立
   $con = new mysqli("localhost", "root", "password", "mydb");
   $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)");
   print("テーブルの作成中.....\n");
   $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27);
   print("記録を挿入中.....\n");
   $stmt = $con -> prepare( "SELECT * FROM Test");
   //ステートメントを実行
   $stmt->execute();
   $stmt->store_result();
   //行数
   $count = $stmt ->num_rows;
   print("テーブルの行数".$count);
   //ステートメントを終了
   $stmt->close();
   //接続を閉じる
   $con->close();
?>

出力結果

テーブルを作成.....
レコードを挿入.....
テーブルの行数: 3

オンラインサンプル

以下のデータを使用してcricketersという名前のテーブルを作成したと仮定します;

mysql> select * from cricketers;
+----+------------+------------+---------------+----------------+
| ID | First_Name | Last_Name  | Date_Of_Birth | Place_Of_Birth |
+----+------------+------------+---------------+----------------+
|  1 | Shikhar    | Dhawan     | 1981-12-05    | Delhi          |
|  2 | Jonathan   | Trott      | 1981-04-22    | CapeTown       | 
|  3 | Kumara     | Sangakkara | 1977-10-27    | Matale         |
|  4 | Virat      | Kohli      | 1988-11-05    | Delhi          |
|  5 | Rohit      | Sharma     | 1987-04-30    | Nagpur         |
|  6 | Ravindra   | Jadeja     | 1988-12-06    | Nagpur         |
+----+------------+------------+---------------+----------------+
6 rows in set (0.07 sec)

この関数を直接呼び出そうとすると、結果がまだ保存されていないため、以下が返されます0  :

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //レコードの読み取り
   $stmt = mysqli_prepare($con, "SELECT * FROM cricketers");
   //ステートメントを実行
   mysqli_stmt_execute($stmt);
   print("テーブルの行数: ".mysqli_stmt_num_rows($stmt));
   //ステートメントを終了
   mysqli_stmt_close($stmt);
   //接続を閉じる
   mysqli_close($con);
?>

出力結果

テーブルの行数: 0

PHP MySQLi リファレンスマニュアル