成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP:oci_new_connect()的用法_Oracle函數
全站頭部文字 我要出現在這里
PHP:oci_new_connect()的用法_Oracle函數 752 2023-12-12   

oci_new_connect

(PHP 5, PECL OCI8 >= 1.1.0)

oci_new_connect — 建定一個到 Oracle 服務器的新連接

說明

resource oci_new_connect ( string $username , string $password [, string $db [, string $charset [, int $session_mode ]]] )

oci_new_connect() 創建一個到 Oracle 服務器的新連接并登錄。與 oci_connect() 和 oci_pconnect() 不同,oci_new_connect() 不會緩沖連接,總是會返回一個全新的剛打開的連接句柄。這在應用程序需要在兩組查詢之間實現事務隔離很有用。

可選的第三個參數可以是本地 Oracle 實例的名字或者是在 tnsnames.ora 的條目中的名字。如果沒有指定第三個參數, PHP 使用環境變量 ORACLE_SID 和 TWO_TASK 來分別確定本地 Oracle 實例的名字和 tnsnames.ora 的位置。

session_mode 參數自版本 1.1 起可用并接受如下值:OCI_DEFAULTOCI_SYSOPEROCI_SYSDBA。如果指定了 OCI_SYSOPEROCI_SYSDBA 其中之一,oci_new_connect() 將嘗試使用外部認證信息建立特權連接。特權連接默認被禁止。要啟用,需要將 oci8.privileged_connect 設為 On。

使用 Oracle 客戶端庫來確定字符集。字符集不需要與數據庫的字符集相匹配。如果不匹配,Oracle 會盡可能地將數據從數據庫字符集進行轉換。因為依賴于字符集,可能不能給出可用的結果。轉換也增加一些時間開銷。

如果不指定,Oracle 客戶端用 NLS_LANG 環境變量來決定字符集。

傳遞此參數可減少連接時間。

下面例子演示了怎樣隔離連接。

Example #1 oci_new_connect() 例子

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_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 tablenn";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped tablenn";
}

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 hallonn";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallonn";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committednn";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollbacknn";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selectingnn";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">nn";
  }
  echo $conn . "----donenn";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

oci_new_connect() 在出錯時返回 FALSE

Note:

在 PHP 5.0.0 之前的版本必須使用 ocinlogon() 替代本函數。該函數名仍然可用,為向下兼容作為 oci_new_connect() 的別名。不過其已被廢棄,不推薦使用。

參見 oci_connect() 和 oci_pconnect()。

參數

username

The Oracle user name.

password

The password for username.

connection_string

包含要連接的 Oracle 實例。可以是 » Easy Connect 串,或是 tnsnames.ora 文件中的連接名,或是本地 Oracle 實例名。

如果不指定,PHP 使用環境變量來確定連接的 Oracle 實例,諸如 TWO_TASK(Linux 下)或 LOCAL(Windows 下)與 ORACLE_SID 等。

要使用 Easy Connect 命名方法,PHP 必須與 Oracle 10g 或更高版本的客戶端庫進行鏈接。Oracle 10g 的 Easy Connect 串格式:[//]host_name[:port][/service_name]。Oracle 11g 則為:[//]host_name[:port][/service_name][:server_type][/instance_name]。服務名可在數據庫服務器機器上運行 Oracle 實用程序 lsnrctl status 找到。

tnsnames.ora 文件可在 Oracle Net 查找路徑中,此路徑包括 $ORACLE_HOME/network/admin 和 /etc。 另一種方法是設置 TNS_ADMIN 以便通過 $TNS_ADMIN/tnsnames.ora 來讀取。表確認 web 守護進程可讀取此文件。

character_set

使用 Oracle 客戶端庫來確定字符集。字符集不需要與數據庫的字符集相匹配。如果不匹配,Oracle 會盡可能地將數據從數據庫字符集進行轉換。因為依賴于字符集,可能不能給出可用的結果。轉換也增加一些時間開銷。

如果不指定,Oracle 客戶端用 NLS_LANG 環境變量來決定字符集。

傳遞此參數可減少連接時間。

session_mode

此參數在 PHP 5(PECL OCI8 1.1)版本開始可用,并收受下列值:OCI_DEFAULTOCI_SYSOPEROCI_SYSDBA。如為 OCI_SYSOPEROCI_SYSDBA 其中之一,此函數將會使用外部的證書建立有特權的連接。有特權的連接默認是禁用的。需要將 oci8.privileged_connect 設為 On 來啟用。

PHP 5.3(PECL OCI8 1.3.4)引進了 OCI_CRED_EXT 模式值。使用外部或操作系統認證必需在 Oracle 數據庫中進行配置。OCI_CRED_EXT 標志只可用于用戶為 "/",密碼為空的情況。oci8.privileged_connect 可為 On 或 Off。

OCI_CRED_EXT 可與 OCI_SYSOPEROCI_SYSDBA 模式組合使用。

OCI_CRED_EXT 由于安全的原因不支持 Windows 系統。

返回值

Returns a connection identifier or FALSE on error.

范例

The following demonstrates how you can separate connections.

Example #2 oci_new_connect() example

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_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 tablenn";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped tablenn";
}

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 hallonn";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallonn";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committednn";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollbacknn";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selectingnn";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">nn";
  }
  echo $conn . "----donenn";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

注釋

Note:

In PHP versions before 5.0.0 you must use ocinlogon() instead. 在當前版本中,舊的函數名還可以被使用,但已經被廢棄并不建議使用。

參見

oci_connect() - 建立一個到 Oracle 服務器的連接 oci_pconnect() - 使用一個持久連接連到 Oracle 數據庫


主站蜘蛛池模板: 卡特琳娜·格兰厄姆| 都市频道在线直播| 张成楚| 巨神战击队| 天气预报电影| 古天乐电影全部作品免费观看| 江苏诗歌网| 上山悠亚| 意大利 艾伦 温暖的夜晚| 黑暗森林 电影| 国产精品久久久久精品三级ⅰ| 麦德罗| 涨潮海岸| 一千年以后简谱| 小明电影| 药不能停| 日本电影致命诱惑| 基兰·拉奥| 赤月| 露底| 我亲爱的简谱| 美女网站免费观看视频| 抖音1| cctv16体育台节目表| andrew blake| 英语书七年级下册单词表| 扎职| 亚洲狠狠爱| 石隽| 抓特务| 2024年月历| 国产精品久久久久精品三级ⅰ| 赫伯曼电影免费观看| 掐脖子自制短视频| 欧美日韩欧美日韩| 鬼父在线| 安娜卡列琳娜| 德兰| 电影名《走进房间》在线观看| 迷案1937电视剧剧情介绍| 2003年黄金价格多少一克|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103