47 PDO的使用電子課件_第1頁
47 PDO的使用電子課件_第2頁
47 PDO的使用電子課件_第3頁
47 PDO的使用電子課件_第4頁
47 PDO的使用電子課件_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

項目3使用PHP框架Laravel來改寫會員管理系統(tǒng)任務(wù)2PDO的使用成都職業(yè)技術(shù)學(xué)院軟件學(xué)院主講教師:牟奇春PDO的使用我們在前面的程序中,是使用的mysqli_connect()函數(shù)來連接MySQL數(shù)據(jù)庫,并調(diào)用相關(guān)函數(shù)完成各項操作。但在實際開發(fā)工作中,可能會用到各種不同的數(shù)據(jù)庫,此時,也需要使用相應(yīng)的連接函數(shù)來連接不同的數(shù)據(jù)庫,給程序開發(fā)帶來不便。而我們這里講到的PDO就是一個數(shù)據(jù)庫訪問抽象層,作用是統(tǒng)一各種數(shù)據(jù)庫的訪問接口,以后更換數(shù)據(jù)庫類型,再也不用去一個一個的修改函數(shù)了。PDO的使用下面,我們簡單講解一下PDO如何使用。為了使用PDO,首先必須在服務(wù)器環(huán)境配置中,打開PDO擴展。以我們前面完成的會員管理系統(tǒng)為例,我們回到小皮面板中,打開“網(wǎng)站”標(biāo)簽,然后找到member,點擊后面的“管理”,再點擊“PHP擴展”,確保選中了PDO_MYSQL。PDO的使用PDO的使用:使用PDO連接數(shù)據(jù)庫新建一個示例文件,輸入如下內(nèi)容:可以運行測試一下,看是否能正常連接到MySQL數(shù)據(jù)庫。第8行和第12行中用到了PHP中的Try-catch語句,其作用是用于處理異常。如果try子句中的代碼正常執(zhí)行,則catch子句不會被執(zhí)行到。一旦try子句中某一行代碼出現(xiàn)異常(比如,數(shù)據(jù)用戶名出錯,則無法正常連接到數(shù)據(jù)庫,系統(tǒng)就會拋出一個異常),catch子句就會自動執(zhí)行,在其中會輸出相應(yīng)的錯誤提示信息。PDO的使用:使用PDO連接數(shù)據(jù)庫PDO的使用:使用PDO查詢數(shù)據(jù)表記錄我們修改一下剛才的代碼如下:運行程序,可以看到,我們用兩種方式,分別輸出了userinfo表中的2條記錄。這里主要是使用了PDO中的query方法。PDO的使用:使用PDO查詢數(shù)據(jù)表記錄PDO實例的query()方法就是執(zhí)行一條查詢語句,并返回一個PDOStatement對象。通過遍歷這個對象,就可以獲得查詢出來的數(shù)據(jù)結(jié)果集。我們可以看到,返回的結(jié)果集中,既包含了關(guān)聯(lián)數(shù)組,又包含了索引數(shù)組,而我們平常開發(fā)一般只需要關(guān)聯(lián)數(shù)據(jù),我們可以簡單設(shè)置一下,在使用query()時,添加一個參數(shù)即可(這個參數(shù)是一個PDO預(yù)定義的常量,表示只獲取關(guān)聯(lián)數(shù)組。):PDO的使用:使用PDO實現(xiàn)數(shù)據(jù)的增、刪、改剛才我們已經(jīng)看到了,使用query()方法可以查詢數(shù)據(jù)庫。如果要對數(shù)據(jù)庫進(jìn)行增、刪、入操作,則需要使用exec()方法。在剛才的示例文件中添加如下代碼:PDO的使用:使用PDO實現(xiàn)數(shù)據(jù)的增、刪、改運行程序,可以看到,我們正常添加了一條記錄,并得到了其ID。下面再看一下更新數(shù)據(jù)庫記錄的操作。如果有數(shù)據(jù)更新,則返回的“受影響的記錄數(shù)”為真實變動的記錄數(shù),如果無實質(zhì)更新,比如,此用戶名本來就是wang,現(xiàn)在重新更新成wang,則返回的“受影響的記錄數(shù)”為0。PDO的使用:使用PDO實現(xiàn)數(shù)據(jù)的增、刪、改下面再看一下刪除數(shù)據(jù)庫記錄的操作。如果有記錄被刪除,則返回刪除的記錄行數(shù)。如果沒有記錄被刪除,則返回0。需要注意,PDO::exec()不會從一條SELECT語句中返回結(jié)果。對于在程序中需要執(zhí)行SELECT的查詢語句,應(yīng)該使用PDO::query()。PDO的使用:PDOStatement

預(yù)處理的使用預(yù)處理語句就是準(zhǔn)備好一個要執(zhí)行的語句,然后返回一個PDOStatement對象。一般我們會使用PDOStatement對象的execute()方法來執(zhí)行這條語句。為什么叫預(yù)處理呢?因為它可以讓我們多次調(diào)用這條語句,并且可以通過占位符來替換語句中的字段條件。相比直接使用PDO對象的query()或者exec()來說,預(yù)處理的效率更高。更加重要的一點是,占位符的應(yīng)用可以有效的防止基本的SQL注入攻擊,我們不需要手動地給SQL語句添加引號,直接讓預(yù)處理來解決這個問題即可。PDO的使用:PDOStatement

預(yù)處理的使用使用預(yù)處理語句,需要使用到prepare方法。同時,有一個關(guān)鍵因素是,在參數(shù)中使用占位符。請記住,在所有語句中,都只能對數(shù)據(jù)列的值使用占位符。比如,在查詢語句中,在where子句里對要篩選的列的值用占位符來替代?;蛘呤窃趇nsert語句中,對插入列的值使用占位符來替代。請看下面的例子,對查詢的id值,使用占位符?來替代,然后使用prepare方法進(jìn)行SQL語句預(yù)處理,最后調(diào)用execute方法,使用數(shù)組作為參數(shù),即可完成查詢。execute的參數(shù)是一個array數(shù)組,其元素個數(shù)請保持和占位符的數(shù)量一致,順序也一致。PDO的使用:PDOStatement

預(yù)處理的使用在下面的代碼中,我們構(gòu)建了一個SQL查詢語句,其中where子句中的id,其值是?,表示是一個占位符。然后在第4行中調(diào)用prepare()方法進(jìn)行預(yù)處理,然后在第5行中調(diào)用execute()方法,并傳遞一個數(shù)組參數(shù),其中的值20就是對應(yīng)where子句中的id。到現(xiàn)在為止,我們簡單的了解了PHP面向?qū)ο蟮木幊谭绞胶蚉HP中PDO的使用。之所以要先講解這些內(nèi)容,是因為我們接下來要學(xué)習(xí)的PHP框架Laravel,就用到了這些相關(guān)的內(nèi)容。PDO的使用:PDOStatement

預(yù)處理的使用總結(jié)PHP數(shù)據(jù)對象(PDO)擴展為PHP訪問數(shù)據(jù)庫定義了一個輕量級的一致接口。其優(yōu)勢有:PDO從底層實現(xiàn)統(tǒng)一接口數(shù)據(jù)庫操作,不管用哪種數(shù)據(jù)庫,

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論