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

# maxdb_affected_rows

(PECL)

maxdb_affected_rows

(no version information, might be only in CVS)

maxdb->affected_rows -- 直前の MaxDB の操作で変更された行数を取得する

## 説明

手続き型

int maxdb_affected_rows ( resource link )

オブジェクト指向型 (プロパティ)

class maxdb {
int affected_rows
}

maxdb_affected_rows() は、与えられた link パラメータに関連した直近の INSERT、UPDATE あるいは DELETE クエリによって変更された行の数を返します。 この数が決定できない場合には、-1 を返します。

> 注意: SELECT 文の場合には、maxdb_affected_rows() は maxdb_num_rows() と同じように動作します。

maxdb_affected_rows() 関数は、 テーブルを変更するようなクエリについてのみ動作します。 SELECT クエリの返す行数を調べるには、代わりに maxdb_num_rows() を使用してください。

## 返り値

ゼロより大きい整数の場合は、変更された行数あるいは取得された行数を表します。 ゼロの場合は、UPDATE ステートメントで行が更新されなかった、 WHERE 句に一致する行がなかった、あるいはクエリが実行されなかったなどを表します。 -1 の場合は、変更された行数が取得できなかったことを表します。

## 参考

maxdb_num_rows()、 maxdb_info()

## 例

例 1. オブジェクト指向型
`<?php $maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB"); /* 接続を調べます */ if (maxdb_connect_errno()) { printf("接続に失敗しました: %s\n", maxdb_connect_error()); exit(); } maxdb_report (MAXDB_REPORT_OFF); $maxdb->query("DROP TABLE mycustomer"); maxdb_report (MAXDB_REPORT_ERROR); /* 行を挿入します */ $maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer"); printf("Affected rows (INSERT): %d\n", $maxdb->affected_rows); $maxdb->query("ALTER TABLE mycustomer ADD Status int default 0"); /* 行を更新します */ $maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50"); printf("Affected rows (UPDATE): %d\n", $maxdb->affected_rows); /* 行を削除します */ $maxdb->query("DELETE FROM mycustomer WHERE cno < 50"); printf("Affected rows (DELETE): %d\n", $maxdb->affected_rows); /* すべての行を選択します */ $result = $maxdb->query("SELECT title FROM mycustomer"); printf("Affected rows (SELECT): %d\n", $maxdb->affected_rows); $result->close(); /* テーブルを削除します */ $maxdb->query("DROP TABLE mycustomer"); /* 接続を閉じます */ $maxdb->close(); ?>`

例 2. 手続き型
`<?php $link = maxdb_connect("localhost", "MONA", "RED", "DEMODB"); if (!$link) { printf("localhost 接続できません。エラー: %s\n", maxdb_connect_error()); exit(); } maxdb_report (MAXDB_REPORT_OFF); maxdb_query($link,"DROP TABLE mycustomer"); maxdb_report (MAXDB_REPORT_ERROR); /* 行を挿入します */ maxdb_query($link, "CREATE TABLE mycustomer AS SELECT * from hotel.customer"); printf("Affected rows (INSERT): %d\n", maxdb_affected_rows($link)); maxdb_query($link, "ALTER TABLE mycustomer ADD Status int default 0"); /* 行を更新します */ maxdb_query($link, "UPDATE mycustomer SET Status=1 WHERE cno > 50"); printf("Affected rows (UPDATE): %d\n", maxdb_affected_rows($link)); /* 行を削除します */ maxdb_query($link, "DELETE FROM mycustomer WHERE cno < 50"); printf("Affected rows (DELETE): %d\n", maxdb_affected_rows($link)); /* すべての行を選択します */ $result = maxdb_query($link, "SELECT title FROM mycustomer"); printf("Affected rows (SELECT): %d\n", maxdb_affected_rows($link)); maxdb_free_result($result); /* テーブルを削除します */ maxdb_query($link, "DROP TABLE mycustomer"); /* 接続を閉じます */ maxdb_close($link); ?>`

上の例の出力は、たとえば以下のようになります。

    Affected rows (INSERT): 15
    Affected rows (UPDATE): 15
    Affected rows (DELETE): 0
    Affected rows (SELECT): 15

前のページ | ホーム | 次のページ
MaxDB PHP 拡張モジュール | 上に戻る | maxdb_autocommit