課程
/后端開發(fā)
/PHP
/PDO—數(shù)據(jù)庫抽象層
老師你好,看了你的PDO教學(xué),最后的實(shí)例教學(xué)感覺很厲害,可是看不懂你的那個PDOmysql類文件里的定義以及方法的使用,能不能添加一下這方面的講課視頻.
2016-02-09
源自:PDO—數(shù)據(jù)庫抽象層 6-4
正在回答
數(shù)據(jù)庫操作類寫法的都遵循一定的思路,無論 php、java、還是 .net,對于數(shù)據(jù)庫的操作原理上基本一致,恰好遇到這問題,也順帶整理一下相關(guān)的知識。
步驟:
連接數(shù)據(jù)庫,這是最關(guān)鍵的一步,數(shù)據(jù)庫都連不上,遑論增刪改查。既然要連接數(shù)據(jù)庫,那么就要指定連接時的參數(shù),像什么數(shù)據(jù)庫的類型啦(DBMS,DataBase Management System),用戶名啦、密碼啦、等等之類的參數(shù)。這個參數(shù)的寫法也有一定的講究,一開始練習(xí)的時候,為了方便,就直接寫在同一個文件里。但這是不符合軟件工程學(xué)原則的,為什么呢?萬一哪一天你改了密碼,就要修改源文件了,修改源文件就有可能把其他的一些內(nèi)容給改動了,以至于整個封裝類都出現(xiàn)問題。因此,建議把連接時的參數(shù)寫到配置文件中,再引入配置文件,讀取配置文件的內(nèi)容,即使有錯,改動的也是配置文件,而不是源文件。
操作數(shù)據(jù)庫,連接搞定了之后,接下來就是操作了,但在操作之前,一定要確保數(shù)據(jù)庫的連接是否存在,要是不存在,那也沒什么好說的。所以,在進(jìn)行數(shù)據(jù)庫操作之前都會使用【if( $link != null )】來判斷一下數(shù)據(jù)庫的連接是否存在,然后再執(zhí)行你拼接好的 SQL 語句,拼接 SQL 語句可以使用帶占位符的SQL進(jìn)行預(yù)處理也就是【prepare($sql)】方法,然后再拼接用戶傳過來的數(shù)據(jù),這樣也可以有效地防止 SQL 注入。
錯誤處理,這一步就非常有講究,在這里就簡單地聊聊老師的那種做法,抽象出一個錯誤處理的方法【haveErrorThrowException()】,之后每次對數(shù)據(jù)庫的操作都要走一遍這個方法,當(dāng)然你也可以使用try..catch.. 這種方法。
對數(shù)據(jù)庫的操作大致的內(nèi)容如上所述。這也是我個人的一些短淺的看法。
以上。
舉報(bào)
本教程主要通過實(shí)戰(zhàn)演練深入剖析PDO以加深理解
1 回答關(guān)于老師定義的getAll函數(shù)
2 回答自定義配置也必須是一個數(shù)組嗎
1 回答關(guān)于insert into省略的問題
1 回答請問一下,調(diào)入自定義的錯誤處理方法之后,為何不退出腳本?
1 回答print_r($PdoMySQL->find($tables, 'id<=10','*','status'));
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-02-23
數(shù)據(jù)庫操作類寫法的都遵循一定的思路,無論 php、java、還是 .net,對于數(shù)據(jù)庫的操作原理上基本一致,恰好遇到這問題,也順帶整理一下相關(guān)的知識。
步驟:
連接數(shù)據(jù)庫,這是最關(guān)鍵的一步,數(shù)據(jù)庫都連不上,遑論增刪改查。既然要連接數(shù)據(jù)庫,那么就要指定連接時的參數(shù),像什么數(shù)據(jù)庫的類型啦(DBMS,DataBase Management System),用戶名啦、密碼啦、等等之類的參數(shù)。這個參數(shù)的寫法也有一定的講究,一開始練習(xí)的時候,為了方便,就直接寫在同一個文件里。但這是不符合軟件工程學(xué)原則的,為什么呢?萬一哪一天你改了密碼,就要修改源文件了,修改源文件就有可能把其他的一些內(nèi)容給改動了,以至于整個封裝類都出現(xiàn)問題。因此,建議把連接時的參數(shù)寫到配置文件中,再引入配置文件,讀取配置文件的內(nèi)容,即使有錯,改動的也是配置文件,而不是源文件。
操作數(shù)據(jù)庫,連接搞定了之后,接下來就是操作了,但在操作之前,一定要確保數(shù)據(jù)庫的連接是否存在,要是不存在,那也沒什么好說的。所以,在進(jìn)行數(shù)據(jù)庫操作之前都會使用【if( $link != null )】來判斷一下數(shù)據(jù)庫的連接是否存在,然后再執(zhí)行你拼接好的 SQL 語句,拼接 SQL 語句可以使用帶占位符的SQL進(jìn)行預(yù)處理也就是【prepare($sql)】方法,然后再拼接用戶傳過來的數(shù)據(jù),這樣也可以有效地防止 SQL 注入。
錯誤處理,這一步就非常有講究,在這里就簡單地聊聊老師的那種做法,抽象出一個錯誤處理的方法【haveErrorThrowException()】,之后每次對數(shù)據(jù)庫的操作都要走一遍這個方法,當(dāng)然你也可以使用try..catch.. 這種方法。
對數(shù)據(jù)庫的操作大致的內(nèi)容如上所述。這也是我個人的一些短淺的看法。
以上。