不使用OCI8接口如何連接PHP和Oracle


隨著網站規模的擴大,MySql顯然不能滿足需求,在許多網站都
采用大型數據庫Oracle的情況下,如何使用PHP來訪問Oracle變的越發重要瞭。
我從我編寫的一個簡單iERP系統談我自己是如何做的,在PHP官方手冊裡也有說明。
一般情況下或者說大多數人都是用Oracle8 Call-Interface(OCI8)來連接數據庫,
我這裡介紹不使用OCI8接口而直接使用PHP的Oracle函數來連接數據庫並處理數據。

註意:
php.ini配置中要去掉 ;extension=php_oracle.dll 前的分號即
extension=php_oracle.dll

1,連接數據庫

使用ora_logon()或者ora_plogon()來連接上數據庫
ora_plogon功能與ora_logon類似,隻不過ora_plogon開啟與 Oracle 的長期連結
直至web服務停止

$handle = ora_plogon(“system@localhost”, “manager”) or die;
“system@localhost” 其中localhost是oracle SID 名稱,system是用戶名稱,manager是用戶密碼

2,打開遊標
$cursor = ora_open($handle);

3,分析語法並執行指令
$query = “select count(*) from area where areacode = $addcode”;
ora_parse($cursor, $query) or die;
ora_exec($cursor);

4,獲取數據
if(ora_fetch($cursor))
$datacount = ora_getcolumn($cursor, 0);
5,關閉遊標
ora_close($cursor);

當然瞭你有可能執行的是delete或者insert語句不存在獲取數據的步驟如:
INSERT:(插入)

$handle = ora_plogon(“system@localhost”, “manager”) or die;
ora_commiton($handle);
$cursor = ora_open($handle);
$query = “insert into area(areacode,areaname) values($addcode,$addname)”;
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);

DELETE:(刪除)

$handle = ora_plogon(“system@localhost”, “manager”) or die;
$cursor = ora_open($handle);
ora_commiton($handle);
$query = “delete from area where areacode in (222,444)” ;
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。