DB2 PHP Queryパラメータマーカーの使い方とpureXMLを使う人向け情報

$query =<<< query_END

select * from aa where 1=?

query_END;

$dummy_aaa=1;
db2_bind_param($stmt, 1, "dummy_aaa", DB2_PARAM_IN);

db2_execute($stmt);

$cnt=0;

while($row = db2_fetch_assoc($stmt))
{
	print_r($row);
}

が普通な使い方ですが、たとえばやったらめったら長いQueryを実行したい場合
db2_exec関数で

$query="SQL文が入ります";
$result=db2_exec($conn, $query);

とすると文字列数の制限でうまく実行できないので
先のマーカーを使うサンプルの?とdb2_bind_param関数をはずしたもので
実行すると通ったりします。
DB2 9.1ではXMLUPDATEがないのでUPDATE文でXMLを丸々更新してたのですが
XMLが長すぎると普通なやり方では通らないんでこんな方法でやりくりをします。
(いまはXqueryのmodifyがあるのでだいぶ楽になりました。
http://www.ibm.com/developerworks/jp/xml/db2/library/techarticle/dm-0710nicola/
 このあたりは文献も結構出てきてますが、余裕見て自分なりの使い方をUPしてみよっと )

あと、XMLTABLE関数等には?(マーカー)をおくことはできない。。
まあ、自分的にはやったらめったら長いQueryを実行したい場合に
使うってことで・・



参照:
http://jp.php.net/manual/ja/function.db2-bind-param.php