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 — Oracleとの接続を閉じる
説明
bool oci_close
( resource $connection
)
Oracle との接続 connection を閉じます。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
注意
注意: バージョン 1.1 から oci_close() は正確に Oracle 接続を閉じます。この関数の古い動作をさせる場合は oci8.old_oci_close_semantics オプションを使用してください。
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.
