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

# PDO->exec()

(no version information, might be only in CVS)

PDO->exec() -- SQL ステートメントを実行し、作用した行数を返す

## 説明

class PDO {
int exec ( string statement )
}

PDO->exec() は、一度の関数コールで SQL 文を実行し、文によって作用した行数を返します。

PDO->exec() は SELECT 文からは結果を返しません。 プログラム中で一度だけ発行が必要になる SELECT 文に対しては、 PDO->query() の発行を検討してください。 複数回発行が必要な文については、PDO->prepare() による PDOStatement オブジェクトの準備と PDOStatement->execute() による文の発行を行ってください。

## パラメータ

`statement`

  準備、実行する SQL ステートメントを指定します。

## 返り値

PDO->exec() は、発行した SQL ステートメントによって更新もしくは 削除された行数を返します。 1 行も作用しなかった場合、PDO->exec() は `0` を返します。

警告
この関数は論理値 `FALSE` を返す可能性がありますが、`FALSE` として評価される `0` や "" といった値を返す可能性もあります。 詳細については 論理値の セクションを参照してください。この関数の返り値を調べるには ===演算子 を 使用してください。

以下の例は PDO->exec() の戻り値の使用法を間違っています。結果として一行も更新されなかった場合に die() がコールされてしまうからです。

`<?php $db->exec() or die($db->errorInfo()); ?>`

## 例

例 1. DELETE 文の発行

WHERE 句を伴う DELETE 文によって削除された行数をカウントします。

`<?php $dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2'); /* FRUIT テーブルから全ての行を削除する */ $count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'"); /* 削除された行数を返す */ print("Deleted $count rows.\n"); ?>`

上の例の出力は以下となります。

    Deleted 1 rows.

## 参考

PDO->prepare()
PDO->query()
PDOStatement->execute()

前のページ | ホーム | 次のページ
PDO->errorInfo() | 上に戻る | PDO->getAttribute()