oci_connect
(PHP 5)
oci_connect -- Устанавливает соединение с сервером Oracle
Описание
resource
oci_connect ( string username, string password [, string db [, string charset]] )
oci_connect() возвращает идентификатор
соединения, который используется большинством функций данного модуля.
Необязательный третий параметр может содержать имя локального экземпляра
Oracle или имя одной из записей в файле tnsnames.ora.
Если третий параметр не указан, PHP использует переменные окружения
ORACLE_SID и TWO_TASK, которые
используются для определения имени локального экземпляра Oracle и
местонахождения файла tnsnames.ora соответственно.
Замечание:
oci_connect() не устанавливает
соединение повторно, если соединение с такими параметрами (логин, пароль,
имя сервера) уже было установлено. Вместо этого,
oci_connect() вернет идентификатор уже открытого
соединения. Это означает, что вам не следует использовать
oci_connect() для разделения нескольких транзакций.
Если вы уверены, что хотите установить соединение с теми же параметрами
заново, то вам следует использовать oci_new_connect().
Если вы используете сервер Oracle версии 9.2 и выше, то вы можете указать
кодировку, которая будет использована в новом соединении. Кодировка
указывается в параметре charset. Если же вы
используете версии сервера Oracle младше 9.2, то этот параметр будет
проигнорирован, а вместо него будет использована переменная окружения
NLS_LANG.
Пример 1. Пример использования oci_connect()
<?php echo "<pre>"; $db = "";
$c1 = oci_connect("scott", "tiger", $db); $c2 = oci_connect("scott", "tiger", $db);
function create_table($conn) { $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))"); oci_execute($stmt); echo $conn . " created table\n\n"; }
function drop_table($conn) { $stmt = oci_parse($conn, "drop table scott.hallo"); oci_execute($stmt); echo $conn . " dropped table\n\n"; }
function insert_data($conn) { $stmt = oci_parse($conn, "insert into scott.hallo values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))"); oci_execute($stmt, OCI_DEFAULT); echo $conn . " inserted hallo\n\n"; }
function delete_data($conn) { $stmt = oci_parse($conn, "delete from scott.hallo"); oci_execute($stmt, OCI_DEFAULT); echo $conn . " deleted hallo\n\n"; }
function commit($conn) { oci_commit($conn); echo $conn . " committed\n\n"; }
function rollback($conn) { oci_rollback($conn); echo $conn . " rollback\n\n"; }
function select_data($conn) { $stmt = oci_parse($conn, "select * from scott.hallo"); oci_execute($stmt, OCI_DEFAULT); echo $conn."----selecting\n\n"; while (oci_fetch($stmt)) { echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n"; } echo $conn . "----done\n\n"; }
create_table($c1); insert_data($c1); // Insert a row using c1 insert_data($c2); // Insert a row using c2
select_data($c1); // Results of both inserts are returned select_data($c2);
rollback($c1); // Rollback using c1
select_data($c1); // Both inserts have been rolled back select_data($c2);
insert_data($c2); // Insert a row using c2 commit($c2); // Commit using c2
select_data($c1); // Result of c2 insert is returned
delete_data($c1); // Delete all rows in table using c1 select_data($c1); // No rows returned select_data($c2); // No rows returned commit($c1); // Commit using c1
select_data($c1); // No rows returned select_data($c2); // No rows returned
drop_table($c1); echo "</pre>"; ?>
|
|
В случае ошибки oci_connect() возвращает FALSE.
Замечание:
В версиях PHP ниже 5.0.0 эта функция называлась ocilogon().
В PHP 5.0.0 и выше ocilogon() является
алиасом oci_connect(), поэтому вы можете
продолжать использовать это имя, однако это не рекомендуется.
См. также oci_pconnect() и
oci_new_connect().