ocidefinebyname

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocidefinebyname -- SELECT 実行中、定義用の PHP 変数を使用する

説明

bool ocidefinebyname ( resource stmt, string column_name, mixed &variable [, int type] )

ocidefinebyname() は、SQL カラムを ユーザー定義の PHP 変数に取得します。 Oracle は、全ての大文字のカラム名を使用しますが、 select の中で小文字も書くことが可能であることに注意してください。 ocidefinebyname() は、 column_name が大文字であることを仮定します。 select 文にない変数を定義する場合は、エラーは発生しないでしょう!

抽象 Datatype (LOB/ROWID/BFILE) を定義する必要がある場合、 まず ocinewdescriptor() 関数を用いてその 領域を確保する必要があります。 ocibindbyname() 関数も参照ください。

例 1. ocidefinebyname() の例

<?php
/* OCIDefineByPos の例 - thies at thieso dot net (980219) */

$conn = OCILogon("scott", "tiger");

$stmt = OCIParse($conn, "select empno, ename from emp");

/* 定義は ociexecute の前に行われなければなりません! */

OCIDefineByName($stmt, "EMPNO", $empno);
OCIDefineByName($stmt, "ENAME", $ename);

OCIExecute($stmt);

while (
OCIFetch($stmt)) {
    echo
"empno:" . $empno . "\n";
    echo
"ename:" . $ename . "\n";
}

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

注意: この関数は PHP >= 5.0.0 以降 oci_define_by_name() に改名されました。 下位互換性のため、 ocidefinebyname() も使用することができますが、推奨されません。