一個php處理oracle的,php oracle

本文目錄一覽:

php調用oracle存儲過程與函數

對於存儲過程的源代碼,開始都需要先定義接受的參數,例如:

PROCEDURE edit_entry(

status_out OUT NUMBER,

status_msg_out OUT VARCHAR2,

id_inout IN OUT INTEGER,

title_in IN VARCHAR2,

text_out OUT CLOB,

categories_in IN list_of_numbers

);

從 PHP 中調用存儲過程 對於要從 PHP 中執行以調用過程的 SQL 語句而言,您將通常在 Oracle BEGIN …END; 塊(稱作匿名塊)中嵌入調用。例如:

?php

// etc.

//$sql = ‘BEGIN sayHello(:name, :message); END;’;

//然後,通過調用 oci_bind_by_name() 將參數綁定到 PHP 變量。 如果使用以下 DDL 語句定義了 sayHello

//:

//CREATE OR REPLACE PROCEDURE

//sayHello (name IN VARCHAR2, greeting OUT VARCHAR2)

//AS

//BEGIN

//greeting := ‘Hello ‘ || name;

//END;

//

//注意,您可以使用 SQL*Plus 命令行運行上面的語句。將該語句保存到文件 (SAYHELLO.SQL)。接下來,使用

//SQL*Plus 登錄:

 // $ sqlplus username@SID

 // 然後,使用 START 命令創建該過程:

 // SQL START /home/username/SAYHELLO.SQL

 // 以下 PHP 腳本調用該過程:

$conn = oci_connect(‘SCOTT’,’TIGER’) or die;

$sql = ‘BEGIN sayHello(:name, :message); END;’;

$stmt = oci_parse($conn,$sql);

// Bind the input parameter

oci_bind_by_name($stmt,’:name’,$name,32);

// Bind the output parameter

oci_bind_by_name($stmt,’:message’,$message,32);

// Assign a value to the input

$name = ‘Harry’;

oci_execute($stmt);

// $message is now populated with the output value

print “$message\n”;

?

調用程序包中的過程時,將使用句號來分隔程序包名稱與過程名稱。 可以使用以下語句指定 blog 程序包:

CREATE OR REPLACE PACKAGE blog AS

TYPE cursorType IS REF CURSOR RETURN blogs%ROWTYPE;

/*

Fetch the latest num_entries_in from the blogs table, populating

entries_cursor_out with the result

*/

PROCEDURE latest(

num_entries_in IN NUMBER,

entries_cursor_out OUT cursorType

);

/*

Edit a blog entry.If id_inout is NULL, results in an INSERT, otherwise

attempts to UPDATE the existing blog entry. status_out will have the value

1 on success, otherwise a negative number on failure with status_msg_out

containing a description

categories_in is a collection where list_of_numbers is described by

TYPE list_of_numbers AS VARRAY(50) OF NUMBER;

*/

PROCEDURE edit_entry(

status_out OUT NUMBER,

status_msg_out OUT VARCHAR2,

id_inout IN OUT INTEGER,

title_in IN VARCHAR2,

text_out OUT CLOB,

categories_in IN list_of_numbers

);

END blog;

/

PHP如何連接oracle數據庫

首先你要在php.ini文件中找到

extension=php_oci8.dll 前面的注釋符號“;”去掉,使php能夠加載支持oracle的模塊;

下面的代碼是調試通過的,可直接使用的:

html

body

?php

$dbconn=OCILogon(“root”,”pass”,”(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=遠程IP)(PORT = 1521))(CONNECT_DATA =(SID=GZXNCW)))”);

if($dbconn!=false)

{

echo “連接成功”;

if(OCILogOff($dbconn)==true)

{

echo “關閉連接成功!”;

}

}

else

{

echo “連接失敗”;

}

?

/body

/html

?php

$dbconn=oci_connect(“你的賬號”,”你的密碼”,”你的數據庫名稱”);//請把中文件設置為你的值;

$stmt=oci_parse($dbconn, “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”);

?

php 連接oracle數據庫語句怎麼寫?

以系統為windowns為例,

1、先PHP.INI中的oracle擴展也開啟了

PHP下php.ini(注意,有時是在windows目錄)修改下下

其中的

extension=php_oci8.dll 去掉前面的“;”號

extension=php_oracle.dll 去掉前面的“;”號

把php_oci8.dll 、和php_oracle.dll 文件複製到windwos的system32下

2、系統中應當有安裝ORCALE的系統,然後配製遠程ORACLE的的監聽。就是你能用你配好的ORACLE系統訪問遠程的數據庫。

{例:

在ORACLE安裝目錄下找到tnsnames.ora,然後按下面的例子配置一下

BASETEST 命名=

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.XX服務器IP地址)(PORT = 1521端口))

)

(CONNECT_DATA = (SERVICE_NAME = masprod 實例ID))

)

}

3.在你的PHP網頁目錄下寫個測試連接的程序試試

?php

$dbconn=OCILogon(“username”,”pwd”,”(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = [遠程服務器IP])(PORT = 1515))

)

(CONNECT_DATA =

(SERVICE_NAME = [數據庫名字])

))”);

if($dbconn!=false)

{

echo “連接成功”;

if(OCILogOff($dbconn)==true)

{

echo “關閉連接成功!”;//=這裡有問題

}

}

else

{

echo “連接失敗”;

}

?

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/244698.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:03
下一篇 2024-12-12 13:03

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • 如何將Oracle索引變成另一個表?

    如果你需要將一個Oracle索引導入到另一個表中,可以按照以下步驟來完成這個過程。 一、創建目標表 首先,需要在數據庫中創建一個新的表格,用來存放索引數據。可以通過以下代碼創建一個…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • Oracle Start With詳解

    一、Start With概述 Start With是Oracle中連接查詢的一個重要語句,它允許我們在一個遞歸查詢中藉助樹結構進行查詢,並且支持多種關聯查詢方式。通過Start W…

    編程 2025-04-25
  • Oracle Table函數詳解

    一、概覽 Table函數是Oracle中一種高級SQL操作,它可以將複雜的表達式轉換成虛擬表來供查詢使用。使用Table函數,可以作為輸入多個行,返回一張臨時表。Table函數可以…

    編程 2025-04-25
  • Oracle更新的全面闡述

    一、概述 Oracle是業界著名的關係型數據庫,無論在企業級應用開發還是數據管理方面,都有着廣泛的應用。更新是Oracle中一個非常重要的操作,它可以實現數據的修改、添加、刪除等操…

    編程 2025-04-25

發表回復

登錄後才能評論