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());
?>

上記の例は次のような出力となります:
Updated Records: 10