《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第24課 PHP操作MySQL數(shù)據(jù)庫_第1頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第24課 PHP操作MySQL數(shù)據(jù)庫_第2頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第24課 PHP操作MySQL數(shù)據(jù)庫_第3頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第24課 PHP操作MySQL數(shù)據(jù)庫_第4頁
《PHP Web應(yīng)用開發(fā)案例教程》630-9(阮云蘭)教案 第24課 PHP操作MySQL數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE8PAGE8PAGE7PAGE7

課題PHP操作MySQL數(shù)據(jù)庫課時2課時(90min)教學(xué)目標知識技能目標:(1)了解PHP訪問MySQL數(shù)據(jù)庫的一般流程(2)掌握PHP訪問MySQL數(shù)據(jù)庫的具體方法(3)掌握PHP操作MySQL數(shù)據(jù)庫的常用技術(shù)素質(zhì)目標:(1)加強實踐練習(xí),培養(yǎng)團隊合作意識(2)培養(yǎng)學(xué)生的邏輯思維、辯證思維和創(chuàng)新思維能力教學(xué)重難點教學(xué)重點:訪問MySQL數(shù)據(jù)庫教學(xué)難點:操作MySQL數(shù)據(jù)庫的常用技術(shù)教學(xué)方法案例分析法、問答法、討論法、講授法、實踐法教學(xué)用具電腦、投影儀、多媒體課件、教材教學(xué)設(shè)計第1節(jié)課:→→→傳授新知(38min)第2節(jié)課:→傳授新知(20min)→課堂實訓(xùn)(15min)→課堂小結(jié)(3min)→作業(yè)布置(2min)教學(xué)過程主要教學(xué)內(nèi)容及步驟設(shè)計意圖第一節(jié)課課前任務(wù)【教師】布置課前任務(wù),和學(xué)生負責人取得聯(lián)系,讓其提醒同學(xué)通過文旌課堂APP或其他學(xué)習(xí)軟件,預(yù)習(xí)本節(jié)課要學(xué)習(xí)的知識【學(xué)生】完成課前任務(wù)通過課前任務(wù),使學(xué)生預(yù)習(xí)本節(jié)課要學(xué)習(xí)的知識,增加學(xué)生的學(xué)習(xí)興趣考勤(2min)【教師】使用文旌課堂APP進行簽到【學(xué)生】班干部報請假人員及原因培養(yǎng)學(xué)生的組織紀律性,掌握學(xué)生的出勤情況問題導(dǎo)入(5min)【教師】提出以下問題:你知道大多數(shù)網(wǎng)站的數(shù)據(jù)都是存儲在哪里的嗎?如何對這些數(shù)據(jù)進行讀取以及其他的處理操作呢?通過問題導(dǎo)入,引導(dǎo)學(xué)生主動思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知(38min)【教師】通過學(xué)生的回答引入要講的知識,講解PHP訪問MySQL數(shù)據(jù)庫的一般流程13.1PHP訪問MySQL數(shù)據(jù)庫的一般流程?【教師】通過多媒體展示“PHP訪問MySQL數(shù)據(jù)庫的一般流程”圖片,并進行介紹通過前面兩章的學(xué)習(xí),相信讀者已經(jīng)對MySQL數(shù)據(jù)庫有了一定認識。本節(jié)主要介紹PHP訪問MySQL數(shù)據(jù)庫的一般流程下面詳細介紹各步驟的操作方法1.連接MySQL服務(wù)器使用mysqli_connect()函數(shù)建立與MySQL服務(wù)器的連接。關(guān)于mysqli_connect()函數(shù)的應(yīng)用可參考本書13.2.1節(jié)。2.選擇MySQL數(shù)據(jù)庫使用mysqli_select_db()函數(shù)選擇MySQL服務(wù)器上的數(shù)據(jù)庫,并與數(shù)據(jù)庫建立連接。關(guān)于mysqli_select_db()函數(shù)的應(yīng)用可參考本書13.2.2節(jié)。3.執(zhí)行SQL語句在選擇的數(shù)據(jù)庫中使用mysqli_query()函數(shù)執(zhí)行SQL語句。關(guān)于mysqli_query()函數(shù)的應(yīng)用可參考本書13.2.3節(jié)。4.關(guān)閉結(jié)果集數(shù)據(jù)庫操作完成后,需要關(guān)閉結(jié)果集,釋放系統(tǒng)資源,語法格式如下:voidmysqli_free_result(mysqli_result$result);5.關(guān)閉MySQL連接使用mysqli_close()函數(shù)關(guān)閉先前打開的MySQL服務(wù)器連接,以節(jié)省系統(tǒng)資源。語法格式如下:boolmysqli_close(mysqli$Link);PHP中與數(shù)據(jù)庫的連接是非持久連接,一般不需要設(shè)置關(guān)閉,系統(tǒng)會自動回收。如果一次性返回的結(jié)果集比較大,或者網(wǎng)站訪問量比較多,那么最好用mysqli_close()函數(shù)關(guān)閉連接?!窘處煛恐v解PHP訪問MySQL數(shù)據(jù)庫的具體方法13.2PHP訪問MySQL數(shù)據(jù)庫的具體方法?【教師】通過多媒體展示“PHP訪問MySQL數(shù)據(jù)庫的具體方法”圖片,并進行介紹為方便對MySQL數(shù)據(jù)庫進行操作,PHP提供了大量MySQL數(shù)據(jù)庫函數(shù),以使Web程序的開發(fā)更加簡單靈活。13.2.1連接MySQL服務(wù)器要操作MySQL數(shù)據(jù)庫,首先必須與MySQL服務(wù)器建立連接。連接MySQL服務(wù)器的語句如下:mysqlimysqli_connect([string$hostname[,string$username[,stringpassword[,string$dbname]]]]);其中的hostname定義MySQL服務(wù)器的主機名或IP地址;username定義MySQL服務(wù)器的用戶名;password定義MySQL服務(wù)器的用戶密碼;dbname為可選項,用于定義默認使用的數(shù)據(jù)庫文件名。該函數(shù)的返回值表示該數(shù)據(jù)庫連接。如果連接成功,則返回一個資源,為以后執(zhí)行SQL指令做準備。?【教師】通過多媒體展示例13-1,講解連接MySQL服務(wù)器的方法使用mysqli_connect()函數(shù)連接MySQL服務(wù)器。實例代碼如下:<?php$con=mysqli_connect("localhost","root","123456");//檢查連接if(!$con){die("連接錯誤:".mysqli_connect_error());//返回一個描述錯誤的字符串}?>如果運行后不出錯,表明已成功連接至MySQL服務(wù)器。如果數(shù)據(jù)庫服務(wù)器不可用,或連接數(shù)據(jù)庫的用戶名或密碼錯誤,將會提示一條PHP警告信息,如圖所示。圖中的警告信息提示,使用root賬號無法連接到數(shù)據(jù)庫服務(wù)器,并且該警告不能停止腳本的繼續(xù)執(zhí)行。這種提示信息會暴露數(shù)據(jù)庫連接的敏感信息,對數(shù)據(jù)庫的安全造成威脅。這種情況下,可以在連接語句前面加上@符號來屏蔽警告信息的輸出(如下所示),并加上由die()函數(shù)進行屏蔽的錯誤處理機制。$con=@mysqli_connect("localhost","root","1234");13.2.2修改默認的MySQL數(shù)據(jù)庫文件要修改連接MySQL服務(wù)器時定義的默認MySQL數(shù)據(jù)庫,或者要選擇服務(wù)器上的數(shù)據(jù)庫,可以使用mysqli_select_db()函數(shù),其語法格式如下:boolmysqli_select_db(mysqli$link,string$dbname)其中的link定義要使用的MySQL連接,dbname定義傳入MySQL服務(wù)器的數(shù)據(jù)庫名。成功返回true,失敗則返回false。?【教師】通過多媒體展示例13-2,講解修改默認MySQL數(shù)據(jù)庫文件的方法使用mysqli_select_db()函數(shù)選擇MySQL數(shù)據(jù)庫。實例代碼如下:<?php$con=mysqli_connect('localhost','root','123456')ordie('不能連接到數(shù)據(jù)庫服務(wù)器!');//連接MySQL服務(wù)器$db_selected=mysqli_select_db($con,'db_blog')ordie('不能選擇數(shù)據(jù)庫文件!');//選擇數(shù)據(jù)庫文件?>如果運行后不出錯,表明已成功連接至MySQL服務(wù)器,并選擇數(shù)據(jù)庫文件。13.2.3執(zhí)行SQL語句要對數(shù)據(jù)庫中的表進行操作,就要使用mysqli_query()函數(shù)執(zhí)行SQL語句,其語法格式如下:mixedmysqli_query(mysqli$con,string$query[,int$resultmode])其中的con定義要使用的MySQL連接,query定義查詢字符串,resultmode為可選項,其值可以為以下常量中的任一個。MYSQLI_USE_RESULT:如果需要檢索大量數(shù)據(jù),可使用該項。MYSQLI_STORE_RESULT:默認選擇。該函數(shù)對于成功的select、show、describe或explain查詢,將返回一個mysqli_result對象。對于其他成功的查詢,將返回true;如果失敗,則返回false。?【教師】通過多媒體展示例13-3,講解執(zhí)行SQL語句的方法使用mysqli_query()函數(shù)執(zhí)行SQL語句。實例代碼如下:(實例位置:素材與實例\example\ph13\03)<?php//連接MySQL數(shù)據(jù)庫服務(wù)器$con=mysqli_connect("localhost","root","123456","db_blog");if(!$con){echo"連接MySQL失敗:".mysqli_connect_error();}//設(shè)置編碼格式mysqli_set_charset($con,"utf8");//執(zhí)行查詢表記錄的SQL語句mysqli_query($con,"SELECT*FROMads");//執(zhí)行添加表記錄的SQL語句mysqli_query($con,"INSERTINTOads(title,content,intime)VALUES('西山','北京西山,是太行山的一條支阜,古稱“太行山之首”,又稱小清涼山。宛如騰蛟起蟒,從西方遙遙拱衛(wèi)著北京城。因此,古人稱之為“神京右臂”。','2017-02-20')");mysqli_close($con);//關(guān)閉MySQL數(shù)據(jù)庫連接?>運行網(wǎng)頁后,如未出現(xiàn)錯誤,則表示成功執(zhí)行SQL語句,此時打開數(shù)據(jù)庫,可看到新添加的數(shù)據(jù)記錄,如圖所示?!緦W(xué)生】聆聽、思考、理解、記錄通過教師的講解和演示,使學(xué)生了解PHP訪問MySQL數(shù)據(jù)庫的一般流程和具體方法第二節(jié)課問題導(dǎo)入(5min)【教師】提出以下問題:在成功執(zhí)行SQL語句后,將返回結(jié)果集,如何處理結(jié)果集中的信息呢?【學(xué)生】思考、舉手回答通過問題導(dǎo)入,引導(dǎo)學(xué)生主動思考,激發(fā)學(xué)生的學(xué)習(xí)興趣傳授新知(20min)【教師】通過學(xué)生的回答引入新知,介紹處理查詢結(jié)果集的方法13.2.4處理查詢結(jié)果集?【教師】安排學(xué)生掃碼觀看視頻“處理查詢結(jié)果集”,講解知識視頻中介紹了哪些處理查詢結(jié)果集的方法??【學(xué)生】掃碼觀看、理解、記憶1.使用mysqli_fetch_array()函數(shù)使用mysqli_fetch_array()函數(shù)可以從查詢結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組、數(shù)字數(shù)組,或二者兼有,其語法格式如下:mixedmysqli_fetch_array(mysqli_result$result[,int$resulttype])其中,result定義由mysqli_query()返回的結(jié)果集標識符。resulttype為可選項,用于定義應(yīng)該產(chǎn)生哪種類型的數(shù)組。其值可以是下列選項中的一個:MYSQLI_ASSOC:關(guān)聯(lián)索引。MYSQLI_NUM:數(shù)字索引。MYSQLI_BOTH:默認值,表示同時包含關(guān)聯(lián)和數(shù)字索引的數(shù)組。該函數(shù)返回與讀取行匹配的字符串數(shù)組。如果結(jié)果集中沒有更多行則返回NULL。需注意返回的字段名是區(qū)分大小寫的。?【教師】通過多媒體展示例13-4,講解使用mysqli_fetch_array()函數(shù)從查詢結(jié)果集中獲取信息并輸出使用mysqli_fetch_array()函數(shù)從查詢結(jié)果集中獲取信息并輸出。實例代碼如下:<?php//連接服務(wù)器$con=mysqli_connect("localhost","root","123456","db_blog");if(!$con){echo"連接MySQL失敗:".mysqli_connect_error();}//設(shè)置編碼格式mysqli_set_charset($con,"utf8");//執(zhí)行SQL語句$sql="SELECTtitle,contentFROMadsORDERBYintimedesc";$result=mysqli_query($con,$sql);//數(shù)字數(shù)組$row=mysqli_fetch_array($result,MYSQLI_NUM);printf("%s:%s",$row[0],$row[1]);echo'<br>';//關(guān)聯(lián)數(shù)組mysqli_free_result($result);$result=mysqli_query($con,$sql);$row=mysqli_fetch_array($result,MYSQLI_ASSOC);printf("%s:%s",$row["title"],$row["content"]);//釋放結(jié)果集mysqli_free_result($result);mysqli_close($con);?>?【學(xué)生】聆聽、記錄并編寫本例代碼運行運行結(jié)果見教材。?【教師】隨機提問:本例中printf()函數(shù)的作用是什么??【學(xué)生】聆聽、記錄并編寫本例代碼運行?【教師】總結(jié)學(xué)生的回答printf()函數(shù)用于輸出格式化的字符串。2.使用mysqli_fetch_object()函數(shù)使用mysqli_fetch_object()函數(shù)可以從查詢結(jié)果集中取得當前行,并將其作為對象返回,其語法格式如下:objectmysqli_fetch_object(mysqli_result$result[,string$classname[,array$params]]);該函數(shù)與mysqli_fetch_array()函數(shù)類似,唯一的區(qū)別是,其返回的是對象而不是數(shù)組。該函數(shù)只能通過字段名來訪問數(shù)組。使用以下格式獲取查詢結(jié)果集中行的元素值。$result->col_name//$result代表查詢結(jié)果集,col_name為字段名本函數(shù)返回的字段名也是區(qū)分大小寫的。?【教師】通過多媒體展示例13-5,講解使用mysqli_fetch_object()函數(shù)從查詢結(jié)果集中獲取信息,并循環(huán)輸出的方法使用mysqli_fetch_object()函數(shù)從查詢結(jié)果集中獲取信息,并循環(huán)輸出。實例代碼如下:<?php//連接服務(wù)器$con=mysqli_connect("localhost","root","123456","db_blog");if(!$con){echo"連接MySQL失敗:".mysqli_connect_error();}//設(shè)置編碼mysqli_set_charset($con,"utf8");//執(zhí)行SQL語句,并循環(huán)輸出查詢結(jié)果集$sql="SELECTtitle,contentFROMadsORDERBYintimedesc";if($result=mysqli_query($con,$sql)){ while($obj=mysqli_fetch_object($result)) { printf("%s:%s",$obj->title,$obj->content); echo"<br><br>"; }//釋放結(jié)果集 mysqli_free_result($result);}//關(guān)閉數(shù)據(jù)庫連接mysqli_close($con);?>3.使用mysqli_fetch_row()函數(shù)使用mysqli_fetch_row()函數(shù),可以逐行獲取查詢結(jié)果集中的每條記錄,其語法格式如下:mixedmysqli_fetch_row(mysqli_result$result)參數(shù)result定義由mysqli_query()返回的結(jié)果集標識符。該函數(shù)返回一個與所取得行相對應(yīng)的字符串數(shù)組,將該行賦予數(shù)組變量$row,每個結(jié)果的字段存儲在一個數(shù)組元素中,下標自0開始,即以$row[0]的形式訪問第1個數(shù)組元素,依次調(diào)用mysqli_fetch_row()函數(shù)逐行返回查詢結(jié)果集中的記錄。本函數(shù)返回的字段名也是區(qū)分大小寫的。?【教師】通過多媒體展示例13-6,講解使用mysqli_fetch_row()函數(shù)逐行獲取查詢結(jié)果集中的記錄,并輸出的方法使用mysqli_fetch_row()函數(shù)逐行獲取查詢結(jié)果集中的記錄,并輸出。實例代碼如下:<?php//連接服務(wù)器$con=mysqli_connect("localhost","root","123456","db_blog");if(!$con){echo"連接MySQL失敗:".mysqli_connect_error();}//設(shè)置編碼格式mysqli_set_charset($con,"utf8");//執(zhí)行SQL語句$sql="SELECTtitle,contentFROMadsORDERBYidAsc";if($result=mysqli_query($con,$sql)){ //逐條獲取記錄 while($row=mysqli_fetch_row($result)) { printf("%s:%s",$row[0],$row[1]); echo"<br><br>"; } //釋放結(jié)果集 mysqli_free_result($result);}mysqli_close($con);?>4.使用mysqli_num_rows()函數(shù)使用mysqli_num_rows()函數(shù),可以獲取查詢結(jié)果集中的記錄數(shù),其語法格式如下:intmysqli_num_rows(mysqli_result$result)參數(shù)result定義由mysqli_query()返回的結(jié)果集標識符。?【教師】通過多媒體展示例13-6,講解使用mysqli_num_rows()函數(shù)獲取查詢結(jié)果集中的記錄數(shù)并輸出的方法使用mysqli_num_rows()函數(shù)獲取查詢結(jié)果集中的記錄數(shù)并輸出。實例代碼如下:<?php//連接服務(wù)器$con=mysqli_connect("localhost","root","123456","db_blog");if(!$con){echo"連接MySQL失敗:".mysqli_connect_error();}//設(shè)置編碼格式mysqli_set_charset($con,"utf8");//執(zhí)行SQL語句$sql="S

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論