PHP新手上路(十二)

2021-04-17 08:34:15 字數 2896 閱讀 3446

使用php來操作oracle資料庫

11. 資料庫連線

在上一節裡,我們已經介紹了php與mysql資料庫的一些基本操作知識,在網際網路中有關php與mysql的教程也最多。mysql是免費的,這一點也許就吸引了不少人。由於其廣泛應用,我就不想在這裡贅述mysql的使用方法了。oracle被大量在企業應用中採用,因此我們就利用oracle來進一步介紹php與資料庫的連線。我們當然不會提及oracle資料庫的設計原理,原因是這已經超出了我們的討論範圍。

php提供了兩套函式與oracle連線,分別是ora_和oci函式。其中ora_函式略顯陳舊。oci函式更新據說更好一些。兩者的使用語法幾乎相差無幾。如前所述,你的php安裝選項應該可以支援兩者的使用。

想獲得更多有關在microsoft windows平台上安裝支援php3的apache伺服器的知識以及更多有關oracle資料庫的知識,請查閱以下url:www.csoft.net/~vsbabu/articles/oraphp.html。  

11.1 連線

<?  

if ($conn=ora_logon("user@tnsname","password"))  

else  

ora_logoff($conn);

phpinfo();

?>

以上**使用tnsname(在你的tnsnames.ora檔案中指明)定義的oracle資料庫名稱、使用者名稱和密碼連線資料庫。在成功連線的基礎上,ora_logon函式返回乙個非零的連線id並儲存在變數$conn中。

11.2 查詢

假設與資料庫已經連線就緒,下面我們就來實際的應用對資料庫的查詢。下面的**演示了乙個連線並查詢的典型例子:

<?

/* * 連線資料庫並執行查詢

*/ function printoraerr($in_cur)

/** 主程式 */

if (!($conn=ora_logon("user@tnsname","password")))  

echo "connected as connection -$conn

n";

echo "opening cursor ...

n";

$cursor=ora_open($conn); printoraerr($cursor);

echo "opened cursor -$cursor

n";

$qry="select user,sysdate from dual";

echo "parsing the query$qry...

n";

ora_parse($cursor,$qry,0); printoraerr($cursor);

echo "query parsed

n";

echo "executing cursor ...

n";

ora_exec($cursor); printoraerr($cursor);

echo "executed cursor

n";

echo "fetching cursor ...

n";

while(ora_fetch($cursor))

echo "fetched all records

n";

echo "closing cursor ...

n";

ora_close($cursor);

echo "closed cursor

n";

echo "logging off from oracle...

n";

ora_logoff($conn);

echo "logged off from oracle

n";

?>

(譯者注:以上**段缺少注釋,請讀者參考php manual的oracle資料庫函式部分)

11.3 顯示結果

以下**演示了怎樣查詢資料庫並將結果輸出:

<?

function printoraerr($in_cur, $conn)

return;

} function exequery($w_qry,$conn)  

echo "n";

while(ora_fetch($cursor))

$numrows++;

echo "n";

} if ($numrows==0)

echo "query returned no records

n";

else  

echo "n";

ora_close($cursor);

return;

} // 主程式

if(!($conn=ora_logon("user@sid","password")))  

$qry="select

deptno "dept"

,empno "emp"

,empnm "name"

,salary "salary"

from

employee

order by 1,2";

exequery($qry);

ora_logoff($conn);

?>

(譯者注:以上**段缺少注釋,請讀者參考php manual的oracle資料庫函式部分)

11.4 基於http的oracle登入

將以下**加在php頁面**之前以確認oracle登入。注意你必須正確設定$ sid。

<?  

if(!isset($php_auth_user))  

else   }

?>   

PHP新手上路

php的許多特點與其他軟體或者工具有關。利用迄今為止我們所學到的php知識,我們可以試著建立乙個簡單互動的 利用這一過程我們又可以學到不少東西。好吧,我們現在開始專注於乙個典型個人 的建設。標題頁面 front.html 這裡我們有乙個非常簡單的html檔案 歡迎來我的寒舍,雖然這裡現在暫時還沒有什...

PHP新手上路(六)

5.5 計數器 乙個簡單的計數器 function get hitcount counter file 增加一次計數值 count 將新的計數值寫入檔案 fp fopen counter file,w fputs fp,count fclose fp 返回計數值 return count 然後我們更...

PHP新手上路(八)

7.檔案上傳 你可以利用php實現檔案的上傳功能,注意客戶端的瀏覽器應該是netscape3以上或者ie3以上的版本。同時,因為本程式與你的php配置檔案 php3為php3.ini,php4為php.in 設定有關。在執行該程式之前請先檢查您的php配置檔案有沒有做好如下的設定 將 upload ...