# oci_define_by_name

(PHP 5, PECL oci8:1.1-1.2.4)

oci_define_by_name — Uses a PHP variable for the define-step during a SELECT

### Description

bool oci_define_by_name ( resource `$statement` , string `$column_name` , mixed `&$variable` [, int `$type` ] )

Defines PHP variables for fetches of SQL-Columns.

### Parameters

`statement`

  A valid OCI statement identifier.

`column_name`

  The column name. Must be uppercased.

  Take into consideration that Oracle uses ALL-UPPERCASE column names, whereby in your select you can also use lowercase. If you define a variable that doesn't exists in your select statement, no error will be issued.

`variable`

  The PHP variable.

`type`

  If you need to define an abstract datatype (LOB/ROWID/BFILE) you must allocate it first using oci_new_descriptor(). See also the oci_bind_by_name() function.

### Return Values

Returns `TRUE` on success or `FALSE` on failure.

### Examples

Example#1 oci_define_by_name() example

`<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");
/* the define MUST be done BEFORE oci_execute! */
oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);
oci_execute($stmt);
while (oci_fetch($stmt)) {
echo "empno:" . $empno . "\n";
echo "ename:" . $ename . "\n";
}
oci_free_statement($stmt);
oci_close($conn);
?>`

### Notes

> Note: In PHP versions before 5.0.0 you must use ocidefinebyname() instead. This name still can be used, it was left as alias of oci_define_by_name() for downwards compatability. This, however, is deprecated and not recommended.