my_ulonglong mysql_affected_rows(MYSQL
*mysql)
説明
最後に呼び出された UPDATE
によって変更されたレコード数、最後に呼び出された
DELETE
によって削除されたレコード数、または最後に呼び出された
INSERT
によって挿入されたレコード数を返します。UPDATE
、DELETE
、または
INSERT
のいずれかのステートメントについて
mysql_query()
を呼び出した後に、この関数を呼び出します。SELECT
ステートメントの場合、mysql_affected_rows()
を呼び出すと、mysql_num_rows()
と同様に動作します。
戻り値
正の整数は、影響を与えた、または取得した、レコード数を示します。0
は、UPDATE
によって更新されたレコードがなかったこと、クエリの
WHERE
節に一致するレコードがなかったこと、またはクエリが実行されていないことを示します。-1
は、クエリがエラーを返したこと、または
SELECT
クエリの場合に
mysql_store_result()
を呼び出す前に
mysql_affected_rows()
が呼び出されたことを示します。
エラー
ありません。
例
mysql_query(&mysql,"UPDATE products SET cost=cost*1.25 WHERE group=10"); printf("%ld products updated",(long) mysql_affected_rows(&mysql));
mysqld
に接続する際にフラグ
CLIENT_FOUND_ROWS
が指定されている場合、mysql_affected_rows()
は UPDATE
ステートメントの
WHERE
節に一致するレコード数を返します。
注意: REPLACE
コマンドで既存のレコードが新しいレコードで置き換えられた場合は
mysql_affected_rows()
は 2
を返します。これは、レコードが 1
行挿入された後で重複したレコードが削除されたためです。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.