PHP マニュアル
前のページ |  | 次のページ

# 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

前のページ | ホーム | 次のページ
改良版MySQL拡張サポート(mysqli) | 上に戻る | mysqli_autocommit