The PHP engine automatically closes the database connection at the end of the script
unless a persistent connection was made. If you want to explicitly close a database
connection, you can call the oci_close() OCI function with the connection
identifier returned by the oci_connect() call. For example:
<?php
$conn = oci_connect('hr', 'hr', '//localhost/XE');
...
oci_close($conn);
...
?>
oci_close
(PHP 5, PECL oci8 >= 1.1.0)
oci_close — Schließt eine Oracle-Verbindung
Beschreibung
bool oci_close
( resource $connection
)
Schließt die Oracle-Verbindung connection .
Parameter-Liste
- connection
-
Ein Zeiger auf eine Oracle-Verbindung, die durch oci_connect() zurückgegeben wurde.
Rückgabewerte
Gibt bei Erfolg TRUE zurück, im Fehlerfall FALSE.
Anmerkungen
Hinweis: Seit der Version 1.1 schließt oci_close() die Verbindung ordnungsgemäß. Benutze die Option oci8.old_oci_close_semantics, um das alte Verhalten dieser Funktion herzustellen.
oci_close
ajitsingh4u at gmail dot com
29-Mar-2009 10:31
29-Mar-2009 10:31
john at petbrain dot com
11-Sep-2002 04:47
11-Sep-2002 04:47
OCILogon ... one thing about is, is that its good practice to use OCILogoff, becase you don't really know what the idle release time is from the Oracle server. In my case, the DBM set the idle time insanely high because we have other projects coming out of Oracle and not just php. Just because php exits, doesn't mean the Oracle connection is dead.
yepster at hotmail dot com
16-Feb-2002 06:21
16-Feb-2002 06:21
For using persistent connections && being able to sleep, I use:
function close_db_locks_on_abort( ) {
global $conn;
if( connection_aborted() ) {
$fp = fopen( "/tmp/shutdown-func.txt", "a" );
fwrite( $fp, sprintf( "connection aborted on %s\n", date( "d-m-Y H:i:s" ) ) );
if( $conn ) {
OCIRollBack( $conn );
fwrite( $fp, sprintf( "-- DURING CONNECTION! ip=%s, user=%s, page=%s\n", $_SERVER["REMOTE_ADDR"], $_SERVER["PHP_AUTH_USER"], $_SERVER["SCRIPT_FILENAME"] ) );
}
fclose( $fp );
}
}
register_shutdown_function ( "close_db_locks_on_abort" );
This makes sure a rollback is done on a connection when a user hits 'stop', so there will be no locks on table rows.
