不使用OCI8接口怎么連接PHP與Oracle
發(fā)表時(shí)間:2023-08-10 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]隨著網(wǎng)站規(guī)模的擴(kuò)大,MySql顯然不能滿足需求,在許多網(wǎng)站都 采用大型數(shù)據(jù)庫(kù)Oracle的情況下,如何使用PHP來(lái)訪問(wèn)Oracle變的越發(fā)重要了。 我從我編寫的一個(gè)簡(jiǎn)單iERP系統(tǒng)談我自己是如何做的...
隨著網(wǎng)站規(guī)模的擴(kuò)大,MySql顯然不能滿足需求,在許多網(wǎng)站都
采用大型數(shù)據(jù)庫(kù)Oracle的情況下,如何使用PHP來(lái)訪問(wèn)Oracle變的越發(fā)重要了。
我從我編寫的一個(gè)簡(jiǎn)單iERP系統(tǒng)談我自己是如何做的,在PHP官方手冊(cè)里也有說(shuō)明。
一般情況下或者說(shuō)大多數(shù)人都是用Oracle8 Call-Interface(OCI8)來(lái)連接數(shù)據(jù)庫(kù),
我這里介紹不使用OCI8接口而直接使用PHP的Oracle函數(shù)來(lái)連接數(shù)據(jù)庫(kù)并處理數(shù)據(jù)。
注意:
php.ini配置中要去掉 ;extension=php_oracle.dll 前的分號(hào)即
extension=php_oracle.dll
1,連接數(shù)據(jù)庫(kù)
使用ora_logon()或者ora_plogon()來(lái)連接上數(shù)據(jù)庫(kù)
ora_plogon功能與ora_logon類似,只不過(guò)ora_plogon開(kāi)啟與 Oracle 的長(zhǎng)期連結(jié)
直至web服務(wù)停止
$handle = ora_plogon("system@localhost", "manager") or die;
"system@localhost" 其中l(wèi)ocalhost是oracle SID 名稱,system是用戶名稱,manager是用戶密碼
2,打開(kāi)游標(biāo)
$cursor = ora_open($handle);
3,分析語(yǔ)法并執(zhí)行指令
$query = "select count(*) from area where areacode = '$addcode'";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
4,獲取數(shù)據(jù)
if(ora_fetch($cursor))
$datacount = ora_getcolumn($cursor, 0);
5,關(guān)閉游標(biāo)
ora_close($cursor);
當(dāng)然了你有可能執(zhí)行的是delete或者insert語(yǔ)句不存在獲取數(shù)據(jù)的步驟如:
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);