|
oci_pconnect
Connect to an Oracle database using a persistent connection
(PHP 5, PECL oci8:1.1-1.2.4)
Examples ( Source code ) » oci_pconnect
Related Examples ( Source code ) » oci_pconnect Examples ( Source code ) » Connecting to Oracle Using OCI8 Examples ( Source code ) » Executing SQL Statements With OCI8 Transactions Code Examples / Notes » oci_pconnectepsilonsys
If you connect using oci_pconnect and the connection has logged you off but is still valid, there seems to be no way to re-use that connection. The next time I try oci_pconnect and then perform an oci_execute operation, I get a "ORA-01012: not logged on" warning. This problem remains, even if I close the connection using oci_close. I ended up with the following (rather annoying) code. <?php function getOracleConnection() { if (!function_exists('oci_pconnect')) return false; $toReturn = oci_pconnect('user', 'pass', 'db'); if ($testRes = @oci_parse($toReturn, 'SELECT Count(group_type_code) FROM pvo.group_type')) if (@oci_execute($testRes)) if (@oci_fetch_array($testRes)) return $toReturn; oci_close($toReturn); if (!function_exists('oci_connect')) return false; $toReturn = oci_connect('user', 'pass', 'db'); if ($testRes = @oci_parse($toReturn, 'SELECT Count(group_type_code) FROM pvo.group_type')) if (@oci_execute($testRes)) if (@oci_fetch_array($testRes)) return $toReturn; oci_close($toReturn); if (!function_exists('oci_new_connect')) return false; $toReturn = oci_new_connect('user', 'pass', 'db'); if ($testRes = @oci_parse($toReturn, 'SELECT Count(group_type_code) FROM pvo.group_type')) if (@oci_execute($testRes)) if (@oci_fetch_array($testRes)) return $toReturn; oci_close($toReturn); return false; } ?> |
Change Languageoci_bind_array_by_name oci_bind_by_name oci_cancel oci_close OCI-Collection->append OCI-Collection->assign OCI-Collection->assignElem OCI-Collection->free OCI-Collection->getElem OCI-Collection->max OCI-Collection->size OCI-Collection->trim oci_commit oci_connect oci_define_by_name oci_error oci_execute oci_fetch_all oci_fetch_array oci_fetch_assoc oci_fetch_object oci_fetch_row oci_fetch oci_field_is_null oci_field_name oci_field_precision oci_field_scale oci_field_size oci_field_type_raw oci_field_type oci_free_statement oci_internal_debug OCI-Lob->append OCI-Lob->close oci_lob_copy OCI-Lob->eof OCI-Lob->erase OCI-Lob->export OCI-Lob->flush OCI-Lob->free OCI-Lob->getBuffering OCI-Lob->import oci_lob_is_equal OCI-Lob->load OCI-Lob->read OCI-Lob->rewind OCI-Lob->save OCI-Lob->saveFile OCI-Lob->seek OCI-Lob->setBuffering OCI-Lob->size OCI-Lob->tell OCI-Lob->truncate OCI-Lob->write OCI-Lob->writeTemporary OCI-Lob->writeToFile oci_new_collection oci_new_connect oci_new_cursor oci_new_descriptor oci_num_fields oci_num_rows oci_parse oci_password_change oci_pconnect oci_result oci_rollback oci_server_version oci_set_prefetch oci_statement_type ocibindbyname ocicancel ocicloselob ocicollappend ocicollassign ocicollassignelem ocicollgetelem ocicollmax ocicollsize ocicolltrim ocicolumnisnull ocicolumnname ocicolumnprecision ocicolumnscale ocicolumnsize ocicolumntype ocicolumntyperaw ocicommit ocidefinebyname ocierror ociexecute ocifetch ocifetchinto ocifetchstatement ocifreecollection ocifreecursor ocifreedesc ocifreestatement ociinternaldebug ociloadlob ocilogoff ocilogon ocinewcollection ocinewcursor ocinewdescriptor ocinlogon ocinumcols ociparse ociplogon ociresult ocirollback ocirowcount ocisavelob ocisavelobfile ociserverversion ocisetprefetch ocistatementtype ociwritelobtofile ociwritetemporarylob |