>  2005/11/12 (土) 03:21:39        [qwerty]
> > 話の内容はなんとなくつかめたがphpもoracleも触ったことない
> > 俺にはここまでが精一杯だ(;´Д`)ごめんね
> > oracle側で配列なものをphp側でも配列として使いたいってこと?
> > それともphp側で配列をこしらえてinsertなりupdateを1回で済ませたいってこと?
> > いずれにせよociとやらのインタフェースとphpの間のところでそれらの型対応が
> > できてないと無理なんじゃないかな。なんかそんな印象だ(;´Д`)
> > なんか便利な機能がたくさんあるんですね(;´Д`)oracleって
> 
> まあ両方のためだね
> まず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に同じ機能があるかどうか探ってみると良いかもね

参考:2005/11/12(土)03時13分25秒