> 2005/11/12 (土) 03:28:25 ◆ ▼ ◇ [qwerty]> >
> > まあ両方のためだね
> > まずoracle側の機能として、バインドがあるのね
> > php側であらかじめSQL文内のバインド変数:vにphp側の変数$vを関連付けておいて、
> > PL/SQL文内で
> > :v := select name from VoiceActor where kind='daemon';
> > とかPL/SQL側で代入すると、php側の$vには"yukarin"が入ってる
> > で、配列バインドがあるのね
> > :v(0) := "yukarin";
> > :v(1) := "shintani";
> > とか添え字アクセスできる変数
> > php側にはカーソル変数取得とかのほかの機構はあるんだが
> > なぜか配列バインドの機構のマニュアルがないんよ。
> ググったらVBで同じようなサンプルが見つかったから読んでみたけど
> OCIとやらの関数で任意のテーブル用のArrayオブジェクトを生成して
> そこに値をFor文でせっせと詰め込んでおくことで、For文でぐるぐる
> 回しながら何回もinsert発行をしなくても1回のinsertで済みますよ
> みたいな話があったんだ(;´Д`)
> だから同じようなことをやるとしたら、やっぱりphp側でバインド配列用の
> オブジェクトを生成するためのファクトリみたいな関数があってそこに
> せっせと詰め込まないといけないんじゃないかな、でもそういうの見当たらないな
> って思ったさ(;´Д`)俺はあんまり解んないからあれだけど、貴殿がもし
> 他の言語にも長けているのであれば、他の言語ではどう実装できるかを
> 考えてphpに同じ機能があるかどうか探ってみると良いかもね
Cだとまあ配列バインドはできるのよね
ただ確かに通常のバインドとは使う関数が違う
OCIBindByNameの引数に秘密のがあるか、もしくは皆コレクションをつかっているのかよくわからん
ただ、oracleの配列バインドってSQL文に書くのに明らかに有用だし
そんな普通の機能がなぜぜんぜん見つけられないのか困ってるんよ
phpのOCIの元ソース見てみんとわからんかもしれんね
参考:2005/11/12(土)03時21分39秒