(PECL ibm_db2 >= 1.0.0)
db2_prepare — 実行する SQL 文を準備する
db2_prepare() は、プリペアドステートメントを作成します。
このプリペアドステートメントには、入力パラメータ・出力パラメータ
あるいは入出力パラメータを表すパラメータマーカ (?)
を含めることができます。プリペアドステートメントにパラメータを渡すには
db2_bind_param() を使用します。
入力パラメータの場合についてのみ、db2_execute()
に渡す配列で指定することも可能です。
アプリケーション内でプリペアドステートメントを使用する利点は、 以下の 3 つです。
connectionstatementoptions
SQL 文のパースに成功し、データベースサーバー内で正しく準備された場合に
ステートメントリソースを返します。データベースサーバーがエラーを返した場合に
false を返します。返されたエラーの詳細を調べるには、
db2_stmt_error() あるいは db2_stmt_errormsg()
をコールします。
例1 パラメータマーカを使用した SQL 文の準備と実行
以下の例では、4 つのパラメータマーカを含む INSERT 文を準備し、 入力値の配列を含む配列を順に処理しながら db2_execute() に値を渡します。
<?php
$animals = array(
array(0, 'cat', 'Pook', 3.2),
array(1, 'dog', 'Peaches', 12.3),
array(2, 'horse', 'Smarty', 350.0),
);
$insert = 'INSERT INTO animals (id, breed, name, weight)
VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
foreach ($animals as $animal) {
$result = db2_execute($stmt, $animal);
}
}
?>