(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)
Prepares an Oracle statement for execution
resource oci_parse ( resource $connection, string $sql_text )
Prepares sql_text
using connection
and returns the statement identifier, which can be used with oci_bind_by_name(), oci_execute() and other functions.
Statement identifiers can be freed with oci_free_statement() or by setting the variable to NULL
.
Parameters:
connection
An Oracle connection identifier, returned by oci_connect(), oci_pconnect(), or oci_new_connect().
sql_text
The SQL or PL/SQL statement.
SQL statements should not end with a semi-colon (";"). PL/SQL statements should end with a semi-colon (";").
Returns:
Returns a statement handle on success, or FALSE
on error.
Notes:
This function does not validate sql_text
. The only way to find out if sql_text
is a valid SQL or PL/SQL statement is to execute it.
Examples:
oci_parse() example for SQL statements
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $conn = oci_connect( 'hr' , 'welcome' , 'localhost/XE' ); // Parse the statement. Note there is no final semi-colon in the SQL statement $stid = oci_parse( $conn , 'SELECT * FROM employees' ); oci_execute( $stid ); echo "<table border='1'>\n" ; while ( $row = oci_fetch_array( $stid , OCI_ASSOC+OCI_RETURN_NULLS)) { echo "<tr>\n" ; foreach ( $row as $item ) { echo " <td>" . ( $item !== null ? htmlentities( $item , ENT_QUOTES) : " " ) . "</td>\n" ; } echo "</tr>\n" ; } echo "</table>\n" ; ?> |
oci_parse() example for PL/SQL statements
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php /* Before running the PHP program, create a stored procedure in SQL*Plus or SQL Developer: CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS BEGIN p2 := p1 * 2; END; */ $conn = oci_connect( 'hr' , 'welcome' , 'localhost/XE' ); if (! $conn ) { $e = oci_error(); trigger_error(htmlentities( $e [ 'message' ], ENT_QUOTES), E_USER_ERROR); } $p1 = 8; // When parsing PL/SQL programs, there should be a final semi-colon in the string $stid = oci_parse( $conn , 'begin myproc(:p1, :p2); end;' ); oci_bind_by_name( $stid , ':p1' , $p1 ); oci_bind_by_name( $stid , ':p2' , $p2 , 40); oci_execute( $stid ); print "$p2\n" ; // prints 16 oci_free_statement( $stid ); oci_close( $conn ); ?> |
See also:
Please login to continue.