English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
mysqli_affected_rows()関数は、前のMySQL操作で影響を受けた行数を取得します。
mysqli_affected_rows()関数の作用は、INSERT、UPDATE、REPLACE、またはDELETEクエリの後に呼び出された場合、前の操作で影響を受けた行数を返すことです。
SELECT文の後に使用した場合、この関数は行数を返します。
mysqli_affected_rows($con)
序号 | パラメータ及び説明 |
---|---|
1 | con(必須) これはMySQL Serverとの接続を表すオブジェクトです。 |
PHP mysqli_affected_rows()関数は、前の(SELECT、INSERT、UPDATE、REPLACEまたはDELETE)操作によって影響を受けた行数を示す整数値を返します。
前のクエリにエラーがある場合、この関数は -1。影響された行がない場合、または前のクエリ/の操作が上記に記載されていない場合:/の操作の一つで、この関数は0を返します。
この関数は最初にPHPバージョン5で導入され、すべての上位バージョンで使用できます。
以下の例では、mysqli_affected_rows()関数の使用方法(プログラムスタイル)
<?php //接続の作成 $con = mysqli_connect("localhost", "root", "password", "mydb"); //employeeテーブルのすべての行を検索するクエリ mysqli_query($con, "SELECT * FROM employee"); //影響された行 $rows = mysqli_affected_rows($con); print("影響された行数: ".$rows); //接続を閉じる mysqli_close($con); ?>
出力結果
影響された行数: 5
オブジェクト指向のスタイルでは、この関数の構文は $con -> affected_rows、其中 $con は接続オブジェクトです-
<?php //接続の作成 $con = new mysqli("localhost", "root", "password", "mydb"); //employeeテーブルのすべての行を検索するクエリ $con -> query("SELECT * FROM employee"); //影響された行数 $rows = $con -> affected_rows; print("影響された行数: ".$rows); //接続を閉じる $con -> close(); ?>
出力結果
影響された行数: 5
以下の状況で、この関数の返り値を確認しましょう:指定されたクエリがなく、クエリにエラーがあるまたは何も影響を与えない場合:
<?php //接続の作成 $con = mysqli_connect("localhost", "root", "password", "mydb"); $rows1 = mysqli_affected_rows($con); print("影響された行(操作が指定されていない場合): ".$rows1"\n"); //employeeテーブルのすべての行を検索するクエリ mysqli_query($con, "SELECT * FORM employee"); $rows2 = mysqli_affected_rows($con); print("影響された行(クエリにエラーがある場合): ".$rows2"\n"); //employeeテーブルのすべての行を検索するクエリ mysqli_query($con, "SELECT FIRST_NAME FROM employee WHERE AGE <=19"); $rows3 = mysqli_affected_rows($con); print("影響された行(操作が実行されない場合): ".$rows3"\n"); //接続を閉じる mysqli_close($con); ?>
出力結果
影響された行(操作が未指定の場合): 0 影響された行(クエリにエラーがある場合): -1 影響された行(クエリが何も実行しない場合): 0
以下の例では、SELECT、UPDATE、INSERT、DELETEクエリでmysqli_affected_rows関数の使用方法-
<?php //接続を確立 $con = mysqli_connect("localhost", "root", "password", "mydb"); //employeeテーブルのすべての行を検索 mysqli_query($con, "SELECT * FROM employee WHERE INCOME > 8000"); print("SELECTクエリが影響する行: ".mysqli_affected_rows($con)."\n"); //employeeテーブルの行を更新するクエリ mysqli_query($con, "UPDATE employee SET INCOME=INCOME+5000 WHERE FIRST_NAME IN ('Ramya', 'Trupthi', 'Sarmista')"); print("UPDATEクエリが影響する行: ".mysqli_affected_rows($con)."\n"); //employeeテーブルに行を挿入するクエリ mysqli_query($con, "INSERT INTO employee VALUES ('Archana', 'Mohonthy', 30, 'M', 13000, 106); print("INSERTクエリが影響する行: ".mysqli_affected_rows($con)."\n"); //employeeテーブルの行を削除するクエリを検索 mysqli_query($con, "DELETE FROM employee WHERE AGE > ") 25"); print("DELETEクエリが影響する行: ".mysqli_affected_rows($con)."\n"); //接続を閉じる mysqli_close($con); ?>
出力結果
SELECTクエリが影響する行: 4 UPDATEクエリが影響する行: 3 INSERTクエリが影響する行: 1 DELETEクエリが影響する行: 3