二、PHP基础——连接msql数据库进行增删改查操作 实战:新闻管理项目
Mysql擴展
PHP針對MySQL數(shù)據(jù)庫操作提供的擴展:允許PHP當(dāng)做MySQL的一個客戶端連接服務(wù)器進行操作。
連庫基本操作
連接數(shù)據(jù)庫服務(wù)器
1)資源 mysql_connect(服務(wù)器地址,用戶名,密碼)
連接資源默認也是超全局的,任何地方都可以使用該資源進行數(shù)據(jù)庫的其他操作
補充:mysql_connect默認是對一個服務(wù)器只連接一次(如果再次運行,返回的是同一個資源),但是如果有需要連接同一個資源兩次,那么可以使用第四個參數(shù):TRUE
設(shè)置連接編碼
保持客戶端與服務(wù)器之間的溝通順暢:同一“語言”(字符集)
1)形式1:mysql_query(“set names XXX”)
2)形式2:mysql_set_charset(“XXX”)
3)怎么確定要使用何種編碼
客戶端當(dāng)前執(zhí)行腳本的界面是什么字符集,就設(shè)定成什么字符集
選定要使用的數(shù)據(jù)庫
1)形式1:mysql_query(“use XXX”)
2)形式2:mysql_select_db(“XXX”)
關(guān)閉連接
主動釋放連接:MySQL服務(wù)器的連接資源是有限的,不用了需要釋放(腳本執(zhí)行結(jié)束系統(tǒng)也會自動釋放)
1)mysql_close()
執(zhí)行增刪改操作
Mysql_query函數(shù)執(zhí)行結(jié)果返回的是true或者false,true代表執(zhí)行成功,false代表執(zhí)行失敗:失敗原因分兩種:一種是SQL指令本身語法錯誤;第二種是執(zhí)行失敗;
做個專門負責(zé)數(shù)據(jù)庫初始化的腳本:之后要操作數(shù)據(jù)庫包含該腳本即可
1)mysql_query(“insert …”):通過insert指令向指定表插入對應(yīng)的數(shù)據(jù)
2)mysql_query(“delete …”):根據(jù)刪除指令操作數(shù)據(jù)庫(表)
3)mysql_query(“update …”):根據(jù)更新指令操作數(shù)據(jù)庫
判斷執(zhí)行結(jié)果
1)執(zhí)行成功,結(jié)果為true,只代表SQL指令執(zhí)行成功
2)執(zhí)行失敗,結(jié)果為false,代表SQL指令錯誤或者操作對象不存在
執(zhí)行查詢操作
執(zhí)行查詢語句
1)mysql_query(“select …”)
2)其他類似查詢語句,比如:show語句,desc語句
以上兩種情況的總結(jié):凡是執(zhí)行操作希望拿到數(shù)據(jù)庫返回的數(shù)據(jù)進行展示的(結(jié)果返回:數(shù)據(jù)結(jié)果)
3)執(zhí)行結(jié)果的處理:成功為結(jié)果集,失敗為false
成功返回結(jié)果:SQL指令沒有錯誤,但是如果查詢結(jié)果本身為空返回也是true(結(jié)果集是一種資源:轉(zhuǎn)換成bool永遠為TRUE)
失敗為false:SQL指令有錯誤
獲取結(jié)果集行數(shù)
1)mysql_num_rows():獲取結(jié)果集中到底有多少行記錄
解析結(jié)果集
將一種結(jié)果集資源(PHP不能直接使用),轉(zhuǎn)換成一種PHP能夠解析的數(shù)據(jù)格式:通過從結(jié)果集中(結(jié)果集指針:類似數(shù)組指針),按照結(jié)果集指針所在位置取出對應(yīng)的一條記錄(一行),返回一個數(shù)組,同時指針下移…直到指針移出結(jié)果集。
1)mysql_fetch_assoc():獲取關(guān)聯(lián)數(shù)組,表的表單名字作為數(shù)組下標,元素值作為數(shù)組元素值
2)mysql_fetch_row():獲取索引數(shù)組,只獲取數(shù)據(jù)的值,然后數(shù)組的下標從0開始自動索引
3)mysql_fetch_array():獲取關(guān)聯(lián)或者索引數(shù)組,但是默認是同時存在:一個記錄取兩次,形成一組是關(guān)聯(lián)數(shù)組,一組是索引數(shù)組;但是可以通過第二個參數(shù)來決定獲取的方式:MYSQL_ASSOC只獲取關(guān)聯(lián)數(shù)組;MYSQL_NUM只獲取索引數(shù)組;MYSQL_BOTH獲取全部兩種。
通常結(jié)果集的操作:一般是獲取里面的所有(全部記錄)
其他相關(guān)函數(shù)
有關(guān)字段信息
1)mysql_num_fields():獲取一個指定結(jié)果集中所有的字段數(shù)
2)mysql_field_name():獲取一個指定結(jié)果集中指定位置字段的名字
有關(guān)出錯信息
1)mysql_error():獲取出錯對應(yīng)的提示信息
2)mysql_errno():獲取出錯對應(yīng)的錯誤提示代號
錯誤的判斷:基于Mysql_query這個函數(shù)執(zhí)行的結(jié)果:結(jié)果返回false就代表執(zhí)行錯誤。
其他函數(shù)
1)mysql_insert_id():獲取上次插入操作所產(chǎn)生的自增長ID,如果沒有自增長ID返回0
Mysql擴展應(yīng)用案例
添加新聞表單
1) 用戶獲取到一個可以添加新聞表單的HTML文件
修改表單項:method提交對象
2) 用戶提交數(shù)據(jù)到后臺指定的PHP腳本(POST)
3) 后臺腳本處理數(shù)據(jù),插入到數(shù)據(jù)庫:處理指PHP在拿到數(shù)據(jù)放入數(shù)據(jù)庫之前要做很多驗證工作保證數(shù)據(jù)是有效的。
3.1 接收數(shù)據(jù)
3,2 數(shù)據(jù)驗證:合法性驗證。標題不能為空,內(nèi)容不能為空
3.3 提示用戶,同時讓用戶重新再來(回到新增表單頁面)
3.4 數(shù)據(jù)入庫
4) 提示用戶操作結(jié)果,并跳轉(zhuǎn)到列表頁(跳轉(zhuǎn)到詳情頁)
Mysql擴展應(yīng)用案例
顯示新聞列表
將數(shù)據(jù)庫中所有的新聞信息獲取出來,然后討要HTML提供的顯示模板把數(shù)據(jù)全部按照指定的位置和格式輸出顯示。
1、 從數(shù)據(jù)庫獲取所有的新聞數(shù)據(jù):PHP腳本
從結(jié)果集中取出所有的記錄:一次取一條,一條一個數(shù)組;然后將所有的記錄放到一個數(shù)組中:形成一個典型的二維數(shù)組
2、 有一個已經(jīng)做好的HTML模板能夠顯示數(shù)據(jù):前端
3、 PHP想辦法將數(shù)據(jù)在HTML中顯示(二者結(jié)合):PHP包含HTML
注意細節(jié):
1、 數(shù)據(jù)的顯示要通過循環(huán)遍歷輸出:需要明確PHP是如何保存數(shù)據(jù)
2、 數(shù)據(jù)的格式需要按照需求來顯示:列表、時間、是否置頂
Mysql擴展應(yīng)用案例
刪除新聞
刪除新聞就是通過用戶選中某一個新聞點擊刪除實現(xiàn)從數(shù)據(jù)庫剔除。
1、 讓用戶看到所有的新聞:已經(jīng)完成(新聞顯示列表:news.phpnews.html)
2、 給用戶提供一個對應(yīng)的點擊按鈕:已經(jīng)存在
3、 實現(xiàn)點擊針對指定的新聞
4、 有一個專門的PHP腳本負責(zé)響應(yīng)用戶的點擊:點哪條刪哪條
4.1 接收要刪除的新聞ID
4.2 調(diào)用數(shù)據(jù)庫操作刪除數(shù)據(jù)
4.3 提示刪除成功,并且刷新當(dāng)前界面
Mysql擴展應(yīng)用案例
修改新聞
修改新聞指用戶通過某個取到看到想修改的新聞,然后點擊之后能夠修改對應(yīng)的新聞信息,最后點擊保存實現(xiàn)修改更新到數(shù)據(jù)庫。
1、 需要看到想編輯新聞:已經(jīng)完成:新聞列表news.phpnews.html
2、 可以點擊實現(xiàn)查看:列表頁中為每個新聞增加點擊鏈接
3、 需要一個PHP腳本能夠處理這件事
3.1 創(chuàng)建PHP文件,同時接受要編輯的ID
3.2 通過ID獲取對應(yīng)的新聞信息
4、 需要一個HTML模板來展示當(dāng)前要編輯的數(shù)據(jù):PHP包含HTML
4.1 包含模板HTML
4.2 在模板表單中顯示對應(yīng)的數(shù)據(jù)
5、 需要修改前端提供的更新表單:表單提交對象(不限)
5.1 需要修改表單提交對象
5.2 更新操作,是后臺根據(jù)表單提交的數(shù)據(jù)來選擇某個新聞進行更新:表單中必須包含一個唯一能確定記錄的新聞:ID,而ID不需要給用戶看,需要增加隱藏表單
6、 需要一個PHP腳本能夠接受修改后的數(shù)據(jù)并保存到數(shù)據(jù)庫
6.1 增加更新數(shù)據(jù)的PHP腳本
6.2 接收用戶提交的數(shù)據(jù),同時進行數(shù)據(jù)驗證:標題和內(nèi)容均不能為空
6.3 組織SQL更新到數(shù)據(jù)庫
6.4 提示結(jié)果
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的二、PHP基础——连接msql数据库进行增删改查操作 实战:新闻管理项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五、scrapy爬虫框架——loggin
- 下一篇: 二十一、PHP框架Laravel学习笔记