English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_stmt_num_rows()関数は、文の結果セットに含まれる行数を返します。
mysqli_stmt_num_rows()関数は文オブジェクトを引数として受け取り、指定された文の結果セットに含まれる行数を返します。
mysqli_stmt_num_rows($stmt)
番号 | 引数及び説明 |
---|---|
1 | stmt(必須) これはSQLクエリを実行する文のオブジェクトを表します。 |
PHP mysqli_stmt_num_rows()関数は、結果セットに返される行数を示す整数値を返します。
この関数は最初に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