my_ulonglong mysql_affected_rows(MYSQL
        *mysql)
      
説明
        mysql_query()またはmysql_real_query()を使ってステートメントを実行した後、UPDATEのために変更されたか、DELETEのために削除されたか、またはINSERTのために挿入された行の数を戻します。SELECTステートメントに対して、mysql_affected_rows()はmysql_num_rows()と同じように作動します。
      
戻り値
        ゼロより大きい整数は影響を与えられたか、復元された横列の数を示します。ゼロは、UPDATEステートメントに対する記録が更新されなかったか、クエリー中のWHEREクローズにマッチした列が存在していなかったか、クエリーがまだ実行されていないことを示します。-1は、クエリーがエラーを戻したか、SELECTクエリーに対して、mysql_store_result()を呼び出す前に、mysql_affected_rows()が呼び出されたことを示します。mysql_affected_rows()が未サイン値を戻すので、戻り値を(my_ulonglong)-1
        (または同等な(my_ulonglong)~0)と比べることによって、-1をチェックすることができます。
      
エラー
なし。
例
char *stmt = "UPDATE products SET cost=cost*1.25 WHERE group=10";
mysql_query(&mysql,stmt);
printf("%ld products updated",
       (long) mysql_affected_rows(&mysql));
        UPDATEステートメントに対して、CLIENT_FOUND_ROWSフラグを規定する場合、mysqldに接続するとき、mysql_affected_rows()は、WHEREローズの規定に基づき、マッチさせられた行の数を戻します。そうならないと、デフォルト行動は実際に変えられた横列の数を返すはずです。
      
        REPLACE
        コマンドを使うとき、古い列を新しい列と入れ替えた場合、この例では、重複するものを削除した後、1本の列が挿入されたので、mysql_affected_rows()は2を戻すことにご注目ください。
      
        INSERT ... ON DUPLICATE KEY
        UPDATEを使って1本の列を挿入ると、その列が新しい列である場合、mysql_affected_rows()は1を戻し、既存の列を更新すると2を戻します。
      

