ocibindbyname() は、PHP 変数 variable を Oracle プレースホルダー ph_name にバインドします。実行時に入力用、 出力用に使用されるによらず、必要な記憶領域が確保されます。 length パラメータは、バインド時の最大長を 設定します。length を -1 に設定した場合、 oci_bind_by_name() は variable の現在の長さを最大長として設定し ます。
抽象データ型 (LOB/ROWID/BFILE) をバインドする必要がある場合、まず OCINewDescriptor() 関数を使用してこれを確保する必要があります。 length は抽象データ型用には 使用されず、-1 を設定する必要があります。 type パラメータは、 使用されるディスクリプタをOracle に伝えます。 使用可能な値は次のようになります。
SQLT_FILE - BFILE 用;
SQLT_CFILE - CFILE 用
SQLT_CLOB - CLOB 用
SQLT_BLOB - BLOB 用
SQLT_RDD - ROWID 用
SQLT_NTY - 名前付けされたデータ型用
SQLT_INT - integer 用
SQLT_CHR - VARCHAR 用
SQLT_BIN - RAW カラム用
SQLT_LNG - LONG カラム用
SQLT_LBI - LONG RAW カラム用
SQLT_RSET - カーソル用。これは oci_new_cursor() を使って前もって生成されたもの。
この関数は余分な空白を除去する事を忘れないでください。 次の例を見てください。
例 2. oci_bind_by_name() の例
|
例 3. oci_bind_by_name() の例
|
警告 |
magic_quotes_gpc や addslashes() と oci_bind_by_name() を同時に使用しないでください。 これは、引用符を追加する必要がないためで、 また、magic quote により付加された引用符は、 oci_bind_by_name() が magic quote によ り付加された引用符と意図的に付加されたものを区別できないため、 そのままデータベースに書き込まれるためです。 |
成功した場合に TRUE を、失敗した場合に FALSE を返します。
注意: PHP バージョン 5.0.0 以前では、代わりに ocibindbyname() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_bind_by_name() への別名として残されていますが、 推奨されません。