




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
php數(shù)據(jù)庫連接通過PHP你可以輕松的連接到數(shù)據(jù)庫,請求數(shù)據(jù)并將其顯示在你的web站點(diǎn)中,甚至修改數(shù)據(jù)庫中的數(shù)據(jù)。MySQL是一種很流行的數(shù)據(jù)庫,并且在互聯(lián)網(wǎng)中有許多有關(guān)PHP與MySQL的教程。MySQL是免費(fèi)的,這一點(diǎn)也許就吸引了不少人。由于其廣泛應(yīng)用,我就不想在這里贅述MySQL的使用方法了。Oracle被大量在企業(yè)應(yīng)用中采用,因此我們就利用Oracle來介紹PHP與數(shù)據(jù)庫的連接。我們當(dāng)然不會提及Oracle數(shù)據(jù)庫的設(shè)計(jì)原理,原因是這已經(jīng)超出了我們的討論范圍。PHP提供了兩套函數(shù)與Oracle連接,分別是ORA_和OCI函數(shù)。其中ORA_函數(shù)略顯陳舊。OCI函數(shù)更新?lián)f更好一些。兩者的使用語法幾乎相差無幾。如前所述,你的PHP安裝選項(xiàng)應(yīng)該可以支持兩者的使用。想獲得更多有關(guān)在MicrosoftWindows平臺上安裝支持PHP3的Apache服務(wù)器的知識以及更多有關(guān)Oracle數(shù)據(jù)庫的知識,請查閱以下URL:/~vsbabu/articles/oraphp.html。4.1連接if($conn=Ora_Logon("user@TNSNAME","password")){echo"SUCCESS!Connectedtodatabase";}else{echo"Failed:-(Couldnotconnecttodatabase";}Ora_Logoff($conn);phpinfo();?>以上代碼使用TNSNAME(在你的tnsnames.ora文件中指明)定義的Oracle數(shù)據(jù)庫名稱、用戶名稱和密碼連接數(shù)據(jù)庫。在成功連接的基礎(chǔ)上,ora_logon函數(shù)返回一個(gè)非零的連接ID并儲存在變量$conn中。4.2查詢假設(shè)與數(shù)據(jù)庫已經(jīng)連接就緒,下面我們就來實(shí)際的應(yīng)用對數(shù)據(jù)庫的查詢。下面的代碼演示了一個(gè)連接并查詢的典型例子:以下是引用片段:/**連接數(shù)據(jù)庫并執(zhí)行查詢*/functionprintoraerr($in_cur){//檢查Oracle是否出錯(cuò)//如果存在錯(cuò)誤則顯示//當(dāng)指針被激活時(shí)每次請求Oracle后調(diào)用該函數(shù)if(ora_errorcode($in_cur))echo"Oraclecode-".ora_error($in_cur)."";return;}/**主程序*/if(!($conn=ora_logon("user@TNSNAME","password"))){echo"Connectiontodatabasefailed";exit;}echo"Connectedasconnection-$conn";echo"Openingcursor...";$cursor=ora_open($conn);printoraerr($cursor);echo"Openedcursor-$cursor";$qry="selectuser,sysdatefromdual";echo"Parsingthequery$qry...";ora_parse($cursor,$qry,0);printoraerr($cursor);echo"Queryparsed";echo"Executingcursor...";ora_exec($cursor);printoraerr($cursor);echo"Executedcursor";echo"Fetchingcursor...";while(ora_fetch($cursor)){$user=ora_getcolumn($cursor,0);printoraerr($cursor);$sysdate=ora_getcolumn($cursor,1);printoraerr($cursor);echo"row=$user,$sysdate";}echo"Fetchedallrecords";echo"Closingcursor...";ora_close($cursor);echo"Closedcursor";echo"Loggingofffromoracle...";ora_logoff($conn);echo"Loggedofffromoracle";?>(譯者注:以上代碼段缺少注釋,請讀者參考PHPManual的Oracle數(shù)據(jù)庫函數(shù)部分)4.3顯示結(jié)果以下代碼演示了怎樣查詢數(shù)據(jù)庫并將結(jié)果輸出:以下是引用片段:functionprintoraerr($in_cur,$conn){//檢查Oracle是否出錯(cuò)//如果存在錯(cuò)誤則顯示//當(dāng)指針被激活時(shí)每次請求Oracle后調(diào)用該函數(shù)//Ifitencounteredanerror,weexitimmediatelyif(ora_errorcode($in_cur)){echo"Oraclecode-".ora_error($in_cur)."n";ora_logoff($conn);exit;}return;}functionexequery($w_qry,$conn){$cursor=ora_open($conn);printoraerr($cursor,$conn);ora_parse($cursor,$w_qry,0);printoraerr($cursor,$conn);ora_exec($cursor);printoraerr($cursor,$conn);$numrows=0;$w_numcols=ora_numcols($cursor);//顯示頭部echo"";for($i=0;$i<$w_numcols;$i++){$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";echo"".ora_name($cursor,$i)."";}echo"";while(ora_fetch($cursor)){echo"";for($i=0;$i<$w_numcols;$i++){$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";if(ora_columntype($cursor,$i)=="LONG")echo"".ora_getcolumn($cursor,$i)."";elseecho"".ora_getcolumn($cursor,$i)."";printoraerr($cursor,$conn);}$numrows++;echo"";}if($numrows==0)echo"Queryreturnednorecords";else{echo"";echo"Count";echo"$numrows";echo"";}echo"";ora_close($cursor);return;}//主程序if(!($conn=ora_logon("user@SID","password"))){echo"Error:Cannotconnecttodatabase";exit;}$qry="SELECTdeptno\"Dept\",empno\"Emp\",empnm\"Name\",salary\"Salary\"FROMemployeeORDERBY1,2";exequery($qry);ora_logoff($conn);?>(譯者注:以上代碼段缺少注釋,請讀者參考PHPManual的Oracle數(shù)據(jù)庫函數(shù)部分)4.4基于HTTP的Oracle登錄將以下代碼加在PHP頁面代碼之前以確認(rèn)Oracle登錄。注意你必須正確設(shè)定$SID。if(!isset($PHP_AUTH_USER)){Header("WWW-authenticate:basicrealm=\"$SID\"");Header("HTTP/1.0401Unauthorized");$title="LoginInstructions";echo"Youarenotauthorizedtoenterthesite";exit;}else{if(!($conn=ora_logon("$PHP_AUTH_USER@$SID",
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 3633-2024 原液著色滌綸牽伸絲
- T-ZSM 0074-2024 餐飲業(yè)油煙排放在線監(jiān)測儀
- 二零二五年度旅游行業(yè)客服業(yè)務(wù)員雇傭服務(wù)協(xié)議
- 二零二五年度總經(jīng)理社會責(zé)任與公益慈善聘用協(xié)議
- 2025年度模特時(shí)尚活動(dòng)贊助商權(quán)益合作協(xié)議
- 二零二五年度荒山承包轉(zhuǎn)讓及林業(yè)資源開發(fā)利用合同
- 二零二五年度學(xué)校事業(yè)單位校車司機(jī)勞動(dòng)合同
- 二零二五年度私人土地買賣合同案:森林資源開發(fā)合作合同樣本
- 二零二五年度學(xué)生校園交通安全管理協(xié)議范本匯編
- 二零二五年度合作社職業(yè)經(jīng)理人鄉(xiāng)村振興聘用協(xié)議
- 2025年湖南環(huán)境生物職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫一套
- 2025年黑龍江農(nóng)業(yè)經(jīng)濟(jì)職業(yè)學(xué)院單招職業(yè)傾向性測試題庫參考答案
- 2025年廣東省深圳法院招聘書記員招聘144人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 變電站電網(wǎng)側(cè)儲能項(xiàng)目可行性研究報(bào)告
- 新版統(tǒng)編版一年級道德與法治下冊全冊教案(完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 4.2 同學(xué)相伴 第二課時(shí) 課件 2024-2025學(xué)年三年級下冊道德與法治 統(tǒng)編版
- 2025年春季學(xué)期學(xué)校德育工作計(jì)劃安排表(完整版)
- 2025年全球及中國調(diào)頻儲能行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2024年江西青年職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 2025年度會計(jì)人員繼續(xù)教育會計(jì)法律法規(guī)答題活動(dòng)測試100題答案
- 消防維保年度工作計(jì)劃
評論
0/150
提交評論