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