PHP mysql_affected_rows() 関数
定義と使用法
mysql_affected_rows() 関数は、前回の MySQL 操作が影響を与えたレコード行数を返します。
文法
mysql_affected_rows(link_identifier)
パラメータ | 説明 |
---|---|
link_identifier | 必須。MySQLの接続識別子。指定されていない場合、最後に使用された接続がデフォルトで使用されます。 mysql_connect() オープンしている接続。 mysql_connect() 接続を確立し、それを使用します。予期せぬことが発生し、接続が見つからない場合や接続ができない場合、システムは E_WARNING 水準の警告メッセージを出力します。 |
説明
最後に行った link_identifier 関連する INSERT、UPDATE または DELETE クエリが影響を与えたレコード行数。
返値
成功した場合、影響を受けた行の数を返します。最後のクエリが失敗した場合、関数は -1 を返します。
最近の操作が条件(WHERE)を持たない DELETE 検索であれば、テーブルのすべてのレコードが削除されますが、この関数の返値は 4.1.2 版以前は常に 0 でした。
UPDATE 検索を使用する場合、MySQL は元の値と新しい値が同じ列を更新しません。これにより、mysql_affected_rows() 関数の返値はクエリ条件に一致するレコード数ではなく、実際に変更されたレコード数のみが返されます。
REPLACE 文はまず同じ主キーを持つレコードを削除し、新しいレコードを挿入します。この関数は削除されたレコード数と挿入されたレコード数の合計を返します。
例
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die("接続できません: " . mysql_error()); } mysql_select_db("mydb"); mysql_query("DELETE FROM mytable WHERE id < 5"); $rc = mysql_affected_rows();; echo "削除されたレコード: " . $rc; mysql_close($con); ?>
出力:
削除されたレコード: 4