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

# db2_execute

(PECL)

db2_execute -- プリペアドステートメントを実行する

## 説明

bool db2_execute ( resource stmt [, array parameters] )

db2_execute() は、 db2_prepare() で準備された SQL 文を実行します。

SQL 文が結果セットを返す場合、例えば SELECT 文であったり 結果セットを返すストアドプロシージャの CALL であったりした場合には、 stmt から結果の行を配列として取得することができます。 取得には db2_fetch_assoc()、 db2_fetch_both() あるいは db2_fetch_array() を使用します。 あるいは、db2_fetch_row() を使用して 結果セットポインタを次の行に移動させ、 db2_result() で行の内容をその都度取得することも可能です。

db2_exec() の代わりに db2_prepare() および db2_execute() を使用することの利点については、 db2_prepare() での簡単な説明を参照ください。

## パラメータ

stmt

  db2_prepare() が返すプリペアドステートメント。

parameters

  プリペアドステートメント内に含まれるパラメータマーカに対応する、 入力パラメータの配列。

## 返り値

成功した場合に `TRUE` を、失敗した場合に `FALSE` を返します。

## 例

例 1. パラメータマーカを使用した SQL 文の準備と実行

以下の例では、4 つのパラメータマーカを含む INSERT 文を準備し、 入力値の配列を含む配列を順に処理しながら db2_execute() に値を渡します。

`<?php $pet = array(0, 'cat', 'Pook', 3.2); $insert = 'INSERT INTO animals (id, breed, name, weight) VALUES (?, ?, ?, ?)'; $stmt = db2_prepare($conn, $insert); if ($stmt) { $result = db2_execute($stmt, $pet); if ($result) { print "新しいペットの追加に成功しました。"; } } ?>`

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

    新しいペットの追加に成功しました。

例 2. OUT パラメータを使用したストアドプロシージャのコール

以下の例では、まずひとつの OUT パラメータをパラメータマーカで受け取る CALL 文を準備し、db2_bind_param() を使用して PHP 変数 $my_pets をそのパラメータにバインドし、 db2_execute() で CALL 文を実行します。 ストアドプロシージャの CALL 終了後は、$num_pets にはストアドプロシージャの OUT パラメータに返された値が反映されています。

`<?php $num_pets = 0; $res = db2_prepare($conn, "CALL count_my_pets(?)"); $rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT); $rc = db2_execute($res); print "私の飼っているペットの数は $num_pets です!"; ?>`

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

    私の飼っているペットの数は 7 です!

## 参考

db2_exec()
db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_row()
db2_prepare()
db2_result()

前のページ | ホーム | 次のページ
db2_exec | 上に戻る | db2_fetch_array