note 20262 added to function.ora-do
| From: | russell at REMOVE_CAPS_TO_MAIL dot loosenut dot com | Date: | Thu, 28 Mar 2002 01:13:00 +0000 |
| Subject: | note 20262 added to function.ora-do | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-28311@lists.php.net to get a copy of this message | ||
Remember that this function includes an implicit ora_fetch (so the first row is on the cursor, if it
exists). I think this problem has probably gotten "everyone" at one time or another... at
least once... :-)
A fairly generic retrieval segment that, given an SQL query in $query (and with the proper Oracle
credentials), will perform a database query on your database and return the results in a single
variable:
// Null out results array
$results = array();
putenv( "ORACLE_HOME=/path/to/oracle/productdir/version" );
$ora_conn = ora_logon( "${oracle_user}@${oracle_db}",
$oracle_pw );
// Parse, exec and fetch...
$ora_cur = ora_do( $ora_conn, $query );
if ( $ora_cur ){
$numCols = ora_numcols( $ora_cur ); // Figure out how many columns
// Get the first fetched row and put it in to our array...
$row = array();
for( $i = 0; $i < $numCols; $i++ ){ // Loop through columns
array_push( $row, ora_getcolumn( $ora_cur, $i ) );
}
array_push( $results, $row );
// Fetch rows, one at a time, putting them in their own
// array. Each row should be appended to the array of
// results..
while ( ora_fetch( $ora_cur ) ){ // Get each row
$row = array();
for( $i = 0; $i < $numCols; $i++ ){ // Loop through columns
array_push( $row, ora_getcolumn( $ora_cur, $i ) );
}
array_push( $results, $row );
}
}
ora_logoff( $ora_conn );
// Result set is now in an array of rows, each containing an
// array of columns
if ( count( $results ) ){
print_r( $results );
} else {
print( "No rows returned.\n" );
}
Note: for a null result set, ora_do() may also drop a warning depending on how you have error
reporting configured in the script or your PHP.INI file. You might want to include:
// Turn off error reporting to the user - let me handle
// it myself...
error_reporting( 0 );
And make sure you properly handle all errors yourself (such as failues on ora_conn() as well as
ora_do()).
--
http://www.php.net/manual/en/function.ora-do.php
http://master.php.net/manage/user-notes.php?action=edit+20262
http://master.php.net/manage/user-notes.php?action=delete+20262
http://master.php.net/manage/user-notes.php?action=reject+20262