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