oci_bind_by_name --
Binds the PHP variable to the Oracle placeholder
Description
bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]] )
oci_bind_by_name() binds the PHP variable
variable to the Oracle placeholder
ph_name. Whether it will be used for
input or output will be determined at run-time and the necessary
storage space will be allocated. The length
parameter sets the maximum length for the bind. If you set
length to -1
oci_bind_by_name() will use the current length of
variable to set the maximum length.
If you need to bind an abstract datatype (LOB/ROWID/BFILE) you
need to allocate it first using the
oci_new_descriptor() function. The
length is not used for abstract datatypes
and should be set to -1. The type parameter
tells Oracle which descriptor is used. Possible
values are:
OCI_B_FILE - for BFILEs;
OCI_B_CFILE - for CFILEs;
OCI_B_CLOB - for CLOBs;
OCI_B_BLOB - for BLOBs;
OCI_B_ROWID - for ROWIDs;
OCI_B_NTY - for named datatypes;
OCI_B_CURSOR - for cursors, that were created
before with oci_new_cursor().
Example 1. oci_bind_by_name()example
<?php /* oci_bind_by_name example thies at thieso dot net (980221) inserts 3 records into emp, and uses the ROWID for updating the records just after the insert. */
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, " INSERT INTO emp (empno, ename) VALUES (:empno,:ename) RETURNING ROWID INTO :rid ");
$stmt = oci_parse($conn, " SELECT * FROM emp WHERE empno IN (1111,2222,3333) "); oci_execute($stmt);
while ($row = oci_fetch_assoc($stmt)) { var_dump($row); }
oci_free_statement($stmt);
/* delete our "junk" from the emp table.... */ $stmt = oci_parse($conn, " DELETE FROM emp WHERE empno IN (1111,2222,3333) "); oci_execute($stmt); oci_free_statement($stmt);
oci_close($conn); ?>
Remember, this function strips trailing whitespaces. See the following
example:
$statement = oci_parse($query); oci_bind_by_name($statement, ":id", 1); oci_execute($statement); /* And this code will add 'trailing spaces follow ', preserving trailing whitespaces */ ?>
Warning
Do not use magic_quotes_gpc or
addslashes() and oci_bind_by_name()
simultaneously as no quoting is needed and any magically applied quotes
will be written into your database as oci_bind_by_name()
is not able to distinguish magically added quotings from those added
intentionally.
Returns TRUE on success or FALSE on failure.
Note:
In PHP versions before 5.0.0 you must use ocibindbyname() instead.
This name still can be used, it was left as alias of
oci_bind_by_name() for downwards compatability.
This, however, is deprecated and not recommended.