mysqli_affected_rows
(PHP 5)
mysqli_affected_rows -- 直近のクエリーで変更された行の数を得る
説明
mixed
mysqli_affected_rows ( resource link)
指定したlinkが指すサーバーにおいて
直近のINSERT、UPDATE、DELETEクエリーにより変更された行の数を
返します。 直前のクエリーが無効の場合に-1を返します。
注意:
直近のクエリーがWHERE節のないDELETEクエリーであった場合
(例: 'DELETE FROM foo')、全レコー ドはテーブルから削除
されていますが、この関数は削除された行数を返しません。
mysqli_affected_rows()はレコードを修正するクエリー
でのみ使用できます。SELECTから返される行の数を得る際には、
mysqli_num_rows()を使用して下さい。
例 1. 削除するクエリー
<?php /* データベースへ接続する */ mysqli_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysqli_error()); mysqli_select_db("mydb"); /* 以下は削除されたレコード数を正しく返します */ mysqli_query("DELETE FROM mytable WHERE id < 10"); printf ("Records deleted: %d\n", mysqli_affected_rows());
/* where句の無いDELETE分の場合、ゼロを返します */ mysqli_query("DELETE FROM mytable"); printf ("Records deleted: %d\n", mysqli_affected_rows()); ?>
|
上記の例は次のような出力となります:
Records deleted: 10
Records deleted: 0 |
|
例 2. 更新するクエリー
<?php /* データベースへ接続する */ mysqli_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysqli_error()); mysqli_select_db("mydb"); /* レコードを更新する */ mysqli_query("UPDATE mytable SET used=1 WHERE id < 10"); printf ("Updated records: %d\n", mysqli_affected_rows()); ?>
|
上記の例は次のような出力となります:
|