PHP程序設(shè)計(jì)教案_第1頁(yè)
PHP程序設(shè)計(jì)教案_第2頁(yè)
PHP程序設(shè)計(jì)教案_第3頁(yè)
PHP程序設(shè)計(jì)教案_第4頁(yè)
PHP程序設(shè)計(jì)教案_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課章節(jié):第一章PHP入門課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解PHP程序的工作流程,并可以編寫、運(yùn)行簡(jiǎn)單的PHP程序教學(xué)重點(diǎn):PHP程序工作流程以及PHP運(yùn)行環(huán)境的安裝、配置。教學(xué)難點(diǎn):PHP程序的工作流程在windows中配置Apache、PHP以及MySQL。解鎖第一個(gè)PHP程序的工作流程。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:1-1PHP概況1.PHP的優(yōu)勢(shì)

PHP發(fā)展到今人,只備了很多優(yōu)勢(shì):

(l)易學(xué)好用(2)免費(fèi)開(kāi)源(3)良好的可擴(kuò)展性(4)平臺(tái)無(wú)關(guān)性(跨平臺(tái))(5)功能全面(6)數(shù)據(jù)庫(kù)支持(7)面向?qū)ο缶幊?/p>

2.PHP的應(yīng)用領(lǐng)域

PHP主要月于以下3個(gè)應(yīng)用領(lǐng)域。

(l)服務(wù)器端腳本程序(2)命令行腳木程序(3)桌面應(yīng)用程序

使用PHP編寫服務(wù)器端腳木程序是PHP最常用的應(yīng)用領(lǐng)域,這也是木課程著重闡述的內(nèi)容。

3.HTML內(nèi)嵌式的腳本語(yǔ)言

這是我的第一個(gè)PHP程序:

<br/>

<php

echo"helloworld!">

<br/>

<phpechodate("y年m月d日h時(shí)i分s秒">注意:PHP代碼通常以符號(hào)“<php開(kāi)始,符號(hào)>”結(jié)束,這兩個(gè)符號(hào)分別叫做PHP開(kāi)始標(biāo)記和結(jié)束標(biāo)記。

PHP程序文件名中的擴(kuò)展名通常使用“.php“,例如

1-2PHP腳本程序工作流程

1.WEB瀏覽器

WEB瀏覽器(WEBBrowser)也叫網(wǎng)頁(yè)瀏覽器,簡(jiǎn)稱瀏覽器。瀏覽器是用戶最為常用的客戶端程序,主要功能是顯示HTML網(wǎng)頁(yè)內(nèi)容,并讓用戶與這些網(wǎng)頁(yè)內(nèi)容產(chǎn)生互動(dòng)。常見(jiàn)的瀏覽器有微軟的InternetExplorer(簡(jiǎn)稱IE)瀏覽器、Mozilla的Firefox瀏覽器等。2.HTML簡(jiǎn)介

HTML是網(wǎng)頁(yè)的靜態(tài)內(nèi)容,這些靜態(tài)內(nèi)容由HTML標(biāo)記產(chǎn)生,WEB瀏覽器識(shí)別這些HTML標(biāo)記并解釋執(zhí)行。例如WER瀏覽器識(shí)別HTML標(biāo)記“<br/>”,將<br/>標(biāo)記解析為一個(gè)換行。在PHP程序開(kāi)發(fā)過(guò)程中,HTML主要負(fù)責(zé)頁(yè)面的互動(dòng)、布局和美觀。3.PHP預(yù)處理器

PHP預(yù)處理器(PHPPreprocessor)的功能是將PHP程序中PHP代碼解釋為文本信息,這些文木信息中可以包含HTML代碼。服務(wù)器

WEB服務(wù)器(WEBServer)也稱為WWW(WordWideWeb)服務(wù)器,功能是解析HTTP。當(dāng)WEB服務(wù)器接收到瀏覽器的一個(gè)HTTP動(dòng)態(tài)請(qǐng)求時(shí).WEB服務(wù)器會(huì)調(diào)用與請(qǐng)求對(duì)應(yīng)的程序,程序經(jīng)PHP預(yù)處理器解釋執(zhí)行后,WEB服務(wù)器向?yàn)g覽器返回HTTP響應(yīng),該響應(yīng)通常是一個(gè)HTML頁(yè)面.瀏覽器接收到該HTTP響應(yīng)后,將執(zhí)行結(jié)果顯示在瀏覽器或進(jìn)行其他處理。

常見(jiàn)的WEB服務(wù)器有微軟的InternetInformationServer(IIS)服務(wù)器、IBM的WebSphere服務(wù)器、開(kāi)源的Apache服務(wù)器等。其中Apache具有免費(fèi)、速度快且性能穩(wěn)定等特點(diǎn),它已成為目前最為流行的WEB服務(wù)器。

5.?dāng)?shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器(DataBaseServer)是一套為應(yīng)用程序提供數(shù)據(jù)管理服務(wù)的軟件,這些服務(wù)包括數(shù)據(jù)管理服務(wù)(例如數(shù)據(jù)的添加、刪除、修改、杳詢)、事務(wù)管理服務(wù)、索引服務(wù)、高速緩存服務(wù)、查詢優(yōu)化服務(wù)、安全及多用戶存取控制服務(wù)等。常見(jiàn)的數(shù)據(jù)庫(kù)服務(wù)器有甲骨文的Oracle、微軟的SQLServer、IBM的DB2、SAP的Sybase以及SUN公司的MySQL數(shù)據(jù)庫(kù)服務(wù)器。由于MySQL具有體積小、速度快、免費(fèi)等特點(diǎn),許多中小型WEB系統(tǒng)選擇MySQL作為數(shù)據(jù)庫(kù)服務(wù)器。6.PHP程序的下作流程l-3PHP服務(wù)器構(gòu)建1.安裝Apache服務(wù)器:雙擊11文件2.2.19,在安裝程序打開(kāi)窗口中,除了制定安裝目錄,并設(shè)定輸入土機(jī)名、管理員信箱。一路選擇“Next”下去,完整安裝。注(在此我們將Apache服務(wù)器安裝在D:/apache/)安裝完成后,在任務(wù)欄托盤區(qū)中會(huì)增加一個(gè)Apache服務(wù)程序運(yùn)行圖標(biāo),這說(shuō)明服務(wù)器已經(jīng)安裝成功,在IE地址欄中鍵入迎,即可看到Apache的歡迎頁(yè)面。2.設(shè)置Apache的服務(wù)端口在Apache安裝路徑下的D:\Apache\\conf\文件夾中,打開(kāi)文件,找到“l(fā)isten80”所在的一行,將“83.安裝PHP環(huán)境

將php也解壓縮在d:/apache/php日錄下4.配置PHP參數(shù)

(l)在步驟2所用到的文件中,在文件最后加上以下三行代碼PHPIniDir“D:\Apache\php”

LoadModulephp5_module“D:\Apache\php\"

AddTyPeapplication/

其中:

①PHPIniDir:“一行的”中填寫為PHP的安裝路徑。

=2\*GB3②LoadModulephp5_module”一行的”填寫為PHP的安裝路徑\。(2)設(shè)置PHP文件存放路徑

打開(kāi)文件,在文件最后加上<Directory“D:\Apache\wwwroot">(D:\Apache\wwwroot是放置web目錄的路徑,路徑即是存放網(wǎng)站的路徑)OptionsIndexesFollowSymLinks

AllowOverrideNoneOrderallowdenyAllowfromall</Directory>(3)配置啟用默認(rèn)文檔

打開(kāi)D:\Apache\\conf\

<IfModuledir_module>238行附近,設(shè)置啟用默認(rèn)文檔

Directorylndex

</ItModule>(4)配置虛擬目錄

①打開(kāi)文件,啟用Includcconf/extra/httpd-vhosts.conf②打開(kāi)Apache\\conf\extra中的文件并進(jìn)行配置,即設(shè)置虛擬目錄與域名,在D盤的Apache文件夾下創(chuàng)建wwwroot文件夾。<VirtualHost*:80>ServerAdminDocumentRoot”D:\Apache\wwwroot\test“

ServerNametest

ErrorLog”D:\Apache\wwwroot\test\logs\“

CustomLog”D:\Apache\wwwroot\test\logs\”common</VirtualHost*:80>

ServerAdmin

DocumentRoot“D:\Apache\wwwroot\phpMyAdmin”

ServerNamemysql

ErrorLog”D:\Apache\wwwroot\phpMyAdmin\logs\”

CustonLog“D:\Apache\wwwroot\phpMyAdmin\logs\”common</VirtuaHost>注:以上的logs文件夾是存放錯(cuò)誤日志的文件夾(5)找到PHP的安裝路徑下的php.ini(復(fù)制一份,文件名修改為),啟用配置

找到:

extension_dir=”D:\Apache\php\ext”(491行附近,此行說(shuō)明要調(diào)用ext中的文件)=”D:\Apache\tmp”(session臨時(shí)保存的文件夾,其中tem是白行創(chuàng)建的,995行附近)

extension=(前面的;去掉)啟用618行附近

extension=(前面的;去掉)啟用633行附近

upload_tmp_dir=“D:\Apache\tmp”(上傳文件臨時(shí)保存的文件夾,其中tmp是自行創(chuàng)建的)549行附近

(6)將PHP安裝路徑下的文件php5ts.dll.復(fù)制到Winnt(Windows)/systenl32/目錄中。

5.安裝Mysql在Apache文件夾下,安裝詳細(xì)步驟見(jiàn)MySQL詳細(xì)安裝步驟.doc文檔。

6.配置Mysql數(shù)據(jù)庫(kù)的管理程序phpMyAdmin

①將phPMyAdmin整個(gè)文件夾復(fù)制到wwwroot文件夾下,phpMyAdmin是用來(lái)管理數(shù)據(jù)庫(kù)MySQL的程序;②在wwwroot創(chuàng)建一個(gè)名為test的文件夾,該文件夾即是存放網(wǎng)站的文件夾;7.配胃C:\WINDOWS\system32\drivers\etc下的hosts文件,即域名和本地IP一致。8.創(chuàng)建一個(gè)簡(jiǎn)單的PHP程序,保存為,并將其存放test文件夾下在地址欄里輸入,如果輸出hello,world!,說(shuō)明環(huán)境配置正確<html><head>

<title>Firstprogram</title>

</head>

<body>

<phpecho“helloword!”;></body></html>9.上述(1)、(2)、(3)、(4)、(5)、(6)、(7)都做完后,重新啟動(dòng)Apache服務(wù)。復(fù)習(xí)及作業(yè)布置:自己動(dòng)手搭建PHP運(yùn)行環(huán)境及其配置。擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:1、介紹一下課程的情況,包括課時(shí),學(xué)分,課程的性質(zhì),學(xué)生學(xué)習(xí)本課程能獲得什么知識(shí)能達(dá)到什么目的,強(qiáng)調(diào)課程的重要性以及課程學(xué)習(xí)好的方法。介紹本課程的考核方式,強(qiáng)調(diào)平時(shí)成績(jī)的重要性。2、借助多媒體課件,對(duì)PHP進(jìn)行介紹,介紹PHP腳本程序工作流程,演示服務(wù)器的構(gòu)建。介紹代碼基本語(yǔ)法及PHP程序組成及編碼規(guī)范。3讓學(xué)生自己實(shí)際動(dòng)手操作搭建運(yùn)行環(huán)境。授課章節(jié):第二章PHP基礎(chǔ)課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以從整體上認(rèn)識(shí)PHP程序的各個(gè)組成部分,并可以制作功能簡(jiǎn)單的用戶注冊(cè)系統(tǒng)。教學(xué)重點(diǎn):PHP數(shù)據(jù)、PHP數(shù)據(jù)類型、瀏覽器端的數(shù)據(jù)采集、PHP程序的數(shù)據(jù)采集、PHP數(shù)據(jù)處理、PHP數(shù)據(jù)的輸出。教學(xué)難點(diǎn):編程規(guī)范習(xí)慣的養(yǎng)成PHP數(shù)據(jù)、PHP數(shù)據(jù)類型、瀏覽器端的數(shù)據(jù)采集、PHP程序的數(shù)據(jù)采集、PHP數(shù)據(jù)處理、PHP數(shù)據(jù)的輸出。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:2-1PHP代碼基本語(yǔ)法開(kāi)始標(biāo)記與結(jié)束標(biāo)記(1)開(kāi)始標(biāo)記“<php”和結(jié)束標(biāo)記“>”(2)開(kāi)始標(biāo)記“<scriptlanguage=”php””>和結(jié)束標(biāo)記“</script>”(3)開(kāi)始標(biāo)記“<”和結(jié)束標(biāo)記“>”(4)開(kāi)始標(biāo)記“<%”和結(jié)束標(biāo)記“%>”注釋PHP支持如下三種注釋風(fēng)格(例如程序):第一種:/*多行注釋風(fēng)格*/;第二種:于PHP數(shù)據(jù)

與傳統(tǒng)的高級(jí)語(yǔ)言一樣;

(1)PHP使用變量或常量實(shí)現(xiàn)數(shù)據(jù)在內(nèi)存中的存儲(chǔ),并使用變量名(例如$userName)或常量名(例如PI)實(shí)現(xiàn)了內(nèi)存數(shù)據(jù)的按名存取。(2)PHP使用等于號(hào)“=”(賦值運(yùn)算符)給變量賦值。(3)PHP不允許直接訪問(wèn)一個(gè)未經(jīng)初始化的變量,否則PHP預(yù)處理器會(huì)提示Notice信息。

(4)PHP提供變量作用域的概念實(shí)現(xiàn)內(nèi)存數(shù)據(jù)的安全訪問(wèn)控制。(5)PHP引入了數(shù)據(jù)類型的概念修飾和管理數(shù)據(jù)。與傳統(tǒng)的高級(jí)語(yǔ)言不一樣:

(1)PHP變量名之前要加美元符號(hào)“$”標(biāo)識(shí),例如$userName變量。(2)PHP是一種“弱類型的語(yǔ)言”,聲明變量或常量時(shí),不需要事先聲明變量或常量的數(shù)據(jù)類型,PHP會(huì)自動(dòng)由PHP預(yù)處理器根據(jù)變量的值將變量轉(zhuǎn)換成適當(dāng)?shù)臄?shù)據(jù)類型。數(shù)據(jù)類型PHP數(shù)據(jù)類型分為四種:標(biāo)量數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型、特殊數(shù)據(jù)類型和偽類型。其中標(biāo)量數(shù)據(jù)類型分為四種:布爾型、整型、浮點(diǎn)型和字符串型;復(fù)合數(shù)據(jù)類型共有兩種:數(shù)組和對(duì)象;特殊數(shù)據(jù)類型有資源數(shù)據(jù)類型和空數(shù)據(jù)類型;偽類型通常在函數(shù)的定義中使用。3.瀏覽器端的數(shù)據(jù)采集瀏覽器端數(shù)據(jù)的采集主要依靠HTML提供的FORM表單實(shí)現(xiàn)。FORM表單是包含一系列表單元素的區(qū)域,表單元素是允許用戶在表單中輸入信息的元素。常見(jiàn)的表單元索有:文本域、下拉列表、單選框、復(fù)選框等。程序的數(shù)據(jù)采集

PHP程序負(fù)責(zé)采集用戶注朋FORM表單提交的數(shù)據(jù),然后進(jìn)行顯示。<php

$userName=$_GET[“userName”];

$password=$_GET[“password”];

$confirmPassword=$_GET[“confirmPassword”];

1”3.為代碼添加注釋軟件開(kāi)發(fā)是一種高級(jí)腦力勞動(dòng),精妙的算法之后往往伴隨著難以理解的代碼,對(duì)于不經(jīng)常維護(hù)的代碼,往往連開(kāi)發(fā)者本人也忘記編寫的初衷。要為代碼添加注釋,增強(qiáng)代碼的可讀性和可維護(hù)性。有時(shí)添加注釋和編寫代碼一樣難,但養(yǎng)成這樣的習(xí)慣是必要的。請(qǐng)記?。罕M最大努力把方便留給別人和將來(lái)的自己。復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入:本章著重講述PHP基本語(yǔ)法、PHP程序的組成以及PHP編碼規(guī)范,詳細(xì)講解PHP數(shù)據(jù)類型以及數(shù)據(jù)輸出等知識(shí)。通過(guò)本章的學(xué)習(xí),讀者可以從整體上認(rèn)識(shí)PHP程序的各個(gè)組成部分,并可以制作功能簡(jiǎn)單的用戶注冊(cè)系統(tǒng)。講解新知:1.代碼基本語(yǔ)法2.編碼規(guī)范程序的組成授課章節(jié):第三章PHP表達(dá)式課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解變量、常量、常用運(yùn)算符、變量狀態(tài)函數(shù)以及類型轉(zhuǎn)換的相關(guān)知識(shí),為今后設(shè)計(jì)更為復(fù)雜的程序奠定堅(jiān)實(shí)的基礎(chǔ)。教學(xué)重點(diǎn):isset()函數(shù)、unset()函數(shù)、empty()函數(shù)的使用字符串連接運(yùn)算符、錯(cuò)誤抑制符、比較運(yùn)算符等運(yùn)算符的使用數(shù)據(jù)類型的轉(zhuǎn)換。教學(xué)難點(diǎn):理解“空”與NULL的區(qū)別,數(shù)據(jù)類型的自動(dòng)轉(zhuǎn)換。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:3-1常量

1.自定義常量

define()函數(shù)的語(yǔ)法格式:

define(name,值為value[,Booleancase_insensitive])

功能:定義一個(gè)名字為name,值為value的常量:ase_insensitive參數(shù)的默認(rèn)值默認(rèn)為FALESE,表示常量名name大小寫敏感(區(qū)分大小寫):case_insensitive參數(shù)值如果為TRUE,表示常暈名name大小寫不敏感(不區(qū)分大小寫)。說(shuō)明:常量名name為字符串類型數(shù)據(jù),常量值value必須是標(biāo)量數(shù)據(jù)類型數(shù)據(jù)。注意:常量名前面不加前綴”$”符號(hào)。常量的作用域是全局的,不存在使用范圍的問(wèn)趣,可以在程序任意位置進(jìn)行定義和使用常量。常最一旦被定義,其值不能在程序過(guò)程中修改,也不能被銷毀。

2.常量的內(nèi)存分配內(nèi)存中專門為常量的存儲(chǔ)分配了一個(gè)空間:常量存儲(chǔ)區(qū)。常量存儲(chǔ)區(qū)是一塊比較特殊的存儲(chǔ)空間,位于該存儲(chǔ)空間的常量是全局的,且在程序運(yùn)行期間不能修改和銷毀。3.預(yù)定義常量PHP還預(yù)定義了許多常最,這些常量無(wú)需使用define()函數(shù)定義,可直接在程序中使用。

(1)_FILE_(FILE前后是兩個(gè)下劃線):當(dāng)前正在處理的腳木文件名。

(2)_LINE_(LINE前后是兩個(gè)下劃線):正在處理的腳本文件的當(dāng)前行數(shù)。(3)PHPV_VERSION:當(dāng)前PHP預(yù)處理器的版本。(4)PHP_OS:PHP所在的操作系統(tǒng)的類型,如Linux。

(5)TRUE:表示邏輯真:FALSE常最:表示邏輯假:NULL常最:表示沒(méi)有值或值不確定。

(6)DIRECTORY_SEPARATOR常量:表示目錄分隔符,Unix或Linux操作系統(tǒng)環(huán)境時(shí)的值為“/”Windows操作系統(tǒng)環(huán)境時(shí)的值為“\”。

3-2變量

1.變量基本概念

變量是用于臨時(shí)存儲(chǔ)數(shù)據(jù)的容器,這些數(shù)據(jù)可以是任意一種數(shù)據(jù)類型的數(shù)據(jù)PHP中的變最名遵循以下規(guī)則:

(1)變量名必須以美元符號(hào)($)開(kāi)頭,例如:$userName。

(2)變量名的第一個(gè)字符必須是字母或下劃線(不能是數(shù)字),變量名稱可以包含字母、數(shù)字和下劃線的組合。

(3)PHP中的變量名是區(qū)分大小寫的,這是一個(gè)非常重要的規(guī)則。這意味著$userName和$UserName是截然不同的兩個(gè)變量。

2.變量賦值方式

(1)傳位賦值方式

(2)傳地址賦值方式3.可變變量PHP提供了一種特殊類型的變量:可變變量,可變變最允許PHP程序動(dòng)態(tài)地改一個(gè)變量的變量名,可變變量的工作原理是用一個(gè)變量的“值”作為另一個(gè)變量的“名”。3-3有關(guān)變量或常量狀態(tài)的函數(shù)1.數(shù)據(jù)類型查看函數(shù)(1)gettype()函數(shù)

(2)var_dump函數(shù)

2.檢查常量或變量是否定義函數(shù)

(1)define()函數(shù)

(2)isset函數(shù)

3.取消變量定義unset()函數(shù)

4.檢查變量是否為“空”

(1)empty()函數(shù)

(2)is_nul()函數(shù)

5.數(shù)據(jù)類型檢查函數(shù)

3-4PHP運(yùn)算符

1.算術(shù)運(yùn)算符2.遞增乒遞減運(yùn)算符3.賦值運(yùn)算符4.比較運(yùn)算符5.邏輯運(yùn)算符6.字符串連接運(yùn)算符7.錯(cuò)誤抑制運(yùn)算符8.條件運(yùn)算符9.類型運(yùn)算符10.執(zhí)行運(yùn)算符11.位運(yùn)算符12.運(yùn)算符優(yōu)先級(jí)

3-5數(shù)據(jù)類型的轉(zhuǎn)換1.類型自動(dòng)轉(zhuǎn)換2.強(qiáng)制類型轉(zhuǎn)換復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入:PHP表達(dá)式是PHP程序最為重要的組成部分,PHP表達(dá)式指的是將相同數(shù)據(jù)類型或不同數(shù)據(jù)類型的數(shù)據(jù),用運(yùn)算符號(hào)按一定的規(guī)則連接起來(lái)、有意義的式子,木章可以圍繞表達(dá)式詳細(xì)講解表達(dá)式中涉及的變最、常量以及常用運(yùn)算符,最后討論表達(dá)式中數(shù)據(jù)類型之間的相互轉(zhuǎn)換。講解新知:(1)詳細(xì)講解常量(2)詳細(xì)講解變量(3)介紹有關(guān)變量和常量狀態(tài)的函數(shù)(4)詳細(xì)講解PHP運(yùn)算符(5)介紹數(shù)據(jù)類型的轉(zhuǎn)換最后對(duì)本次課內(nèi)容進(jìn)行總結(jié)授課章節(jié):第四章PHP流程控制課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解條件控制結(jié)構(gòu)、循環(huán)結(jié)構(gòu)以及程序跳轉(zhuǎn)和終止語(yǔ)句3種類型的PHP流程控制語(yǔ)句,這3種類型的流程控制構(gòu)成了面向過(guò)程編程的核心。通過(guò)學(xué)習(xí),為今后設(shè)計(jì)更為復(fù)雜的程序奠定堅(jiān)實(shí)的基礎(chǔ)。教學(xué)重點(diǎn):if…else…語(yǔ)句、switch語(yǔ)句、while語(yǔ)句以及break語(yǔ)句、continue語(yǔ)句、exit語(yǔ)句。教學(xué)難點(diǎn):switch語(yǔ)句、while語(yǔ)句以及break語(yǔ)句、continue語(yǔ)句、exit語(yǔ)句。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:4-1條件控制結(jié)構(gòu)語(yǔ)句If語(yǔ)句的語(yǔ)法格式為:If(條件表達(dá)式){語(yǔ)句塊}………else語(yǔ)句if…….else語(yǔ)句的語(yǔ)法格式為:if(條件表達(dá)式){語(yǔ)句塊1}else{語(yǔ)句塊2}3,.switch語(yǔ)句Switch語(yǔ)句的語(yǔ)法格式:Switch(表達(dá)式){Case值1:語(yǔ)句塊1;break;Case值2:語(yǔ)句塊2;break;……………Default:語(yǔ)句塊n;}4-2循環(huán)結(jié)構(gòu)1.while循環(huán)語(yǔ)句while循環(huán)語(yǔ)句是最簡(jiǎn)單的循環(huán)語(yǔ)句,它的語(yǔ)法格式跟if語(yǔ)句相似:while(條件表達(dá)式){

語(yǔ)句塊;}……while循環(huán)語(yǔ)句

do……while循環(huán)語(yǔ)句的語(yǔ)法格式如下所示:

do{語(yǔ)句塊;

}while(條件表達(dá)式);

:循環(huán)語(yǔ)句

for循環(huán)語(yǔ)句的語(yǔ)法格式如下所示:

for(表達(dá)式l;條件表達(dá)式2;表達(dá)式3){

語(yǔ)句塊;

}

for循環(huán)語(yǔ)句中,各表達(dá)式的功能如下:

表達(dá)式1的功能是初始化循環(huán)控制變量,表達(dá)式l只執(zhí)行一次,并且不是必需的。條件表達(dá)式2為循環(huán)控制條件,若條件表達(dá)式2值為TRUE,則執(zhí)行語(yǔ)句塊;若條件表達(dá)式2值為隊(duì)FALSE則跳出for循環(huán)。條件表達(dá)式2也不是必需的。表達(dá)式3的功能是修改循環(huán)控制變量的值。表達(dá)式3也不是必需的。

4.循環(huán)結(jié)構(gòu)應(yīng)用

程序使用PHP循環(huán)結(jié)構(gòu)制作九九乘法表。

4-3其他流程控制語(yǔ)句

語(yǔ)句

continue語(yǔ)句一般在for、while或do…while循環(huán)結(jié)構(gòu)中使用。在循環(huán)結(jié)構(gòu)中,當(dāng)程序執(zhí)行至continue時(shí),程序?qū)⑻^(guò)木次循環(huán)中剩余的代碼并開(kāi)始執(zhí)行下一次循環(huán)。例如程序的功能是計(jì)算l+3+5+…+99的奇數(shù)和。

語(yǔ)句

當(dāng)break在switch語(yǔ)句中使用時(shí),它會(huì)使程序跳出當(dāng)前的Switch語(yǔ)句。brcak語(yǔ)句還可以使用在for、while或do…while循環(huán)語(yǔ)句中,使得程序跳出當(dāng)前循環(huán)結(jié)構(gòu)。例如程序的功能時(shí)計(jì)算I+2+3+…+100的和。3.終止PHP程序運(yùn)行exit語(yǔ)言結(jié)構(gòu)的語(yǔ)法格式:voidexit([stringmessage])

exit語(yǔ)言結(jié)構(gòu)的功能:輸出字符串信息message,然后終止PHP程序的運(yùn)行。例如程序·

從程序的運(yùn)行結(jié)果可以看出:

(1)使用邏輯或(or)表達(dá)式:$aor$b可以強(qiáng)制只有表達(dá)式$a的結(jié)果為隊(duì)FALSE時(shí),表達(dá)式$b才會(huì)執(zhí)行。

(2)當(dāng)某個(gè)表達(dá)式運(yùn)行失敗時(shí),該表達(dá)式的結(jié)果為FALSE。復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入:PHP程序中如果沒(méi)有流程控制語(yǔ)句,PHP程序?qū)牡谝粭lPHP語(yǔ)句開(kāi)始執(zhí)行,一直運(yùn)行到最后一條PHP語(yǔ)句。流程控制語(yǔ)句用于改變程序執(zhí)行次序,從而控制程序的執(zhí)行流程。講解新知:(1)通過(guò)例子講解條件控制語(yǔ)句(2)通過(guò)例子講解循環(huán)結(jié)構(gòu)(3)通過(guò)例子講解程序跳轉(zhuǎn)和終止語(yǔ)句授課章節(jié):第五章PHP數(shù)組課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解數(shù)組的基本概念以及數(shù)組常用的處理函數(shù),并掌握幾種數(shù)組遍歷方法。教學(xué)重點(diǎn):數(shù)組的遍歷foreach語(yǔ)言結(jié)構(gòu)、常用數(shù)組函數(shù)的使用、數(shù)組內(nèi)部指針。教學(xué)難點(diǎn):各種數(shù)組遍歷的方法常用數(shù)組函數(shù)的使用,例如快速創(chuàng)建數(shù)組的函數(shù)、數(shù)組統(tǒng)計(jì)函數(shù)、數(shù)組指針函數(shù)、數(shù)組和變量間的轉(zhuǎn)換函數(shù)、數(shù)組遍歷語(yǔ)言結(jié)構(gòu)、數(shù)組檢索函數(shù)。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:

5-1數(shù)組的基本概念

1.為什么引入數(shù)組

使用標(biāo)量數(shù)據(jù)類型定義的變量只能存儲(chǔ)單個(gè)“數(shù)據(jù)”,僅依靠標(biāo)量數(shù)據(jù)類型遠(yuǎn)不現(xiàn)實(shí)生活中的一些常見(jiàn)問(wèn)題,例如一個(gè)設(shè)置個(gè)人信息的頁(yè)面。2.數(shù)組的分類一維數(shù)組、二維數(shù)組、多維數(shù)組5-2一維數(shù)組的創(chuàng)建1.直接將變量聲明為數(shù)組元素,一個(gè)變量聲明為一個(gè)數(shù)組元素有三種方法:第一種方法:不指定數(shù)組元素的“鍵”,示例程序:$characters[]=”humour”;

第二種方法:將數(shù)組元索的“鍵”指定為某個(gè)整數(shù),示例程序:$iterests[2]=”music”;第三種方法:將數(shù)組元素的“鍵”指定為某個(gè)字符串,示例程序:$colors[“red]=”red”;2.使用array()語(yǔ)言結(jié)構(gòu)創(chuàng)建數(shù)組

PHP提供了array()語(yǔ)言結(jié)構(gòu)創(chuàng)建數(shù)組,array()語(yǔ)言結(jié)構(gòu)接受一定數(shù)量用逗號(hào)分隔的key=>value參數(shù)對(duì),這樣可以一次性地為數(shù)組添加多個(gè)元素(若key省略,則key值為整數(shù))。

3.創(chuàng)建數(shù)組的注意事項(xiàng)

(1)如果數(shù)組元素中的“鍵”是一個(gè)浮點(diǎn)數(shù),則‘鍵”將被強(qiáng)制轉(zhuǎn)換為整數(shù)(例如浮點(diǎn)數(shù)將被強(qiáng)制轉(zhuǎn)換為整數(shù)8),如果“鍵”是TRUE或FALSE,則‘鍵”將被強(qiáng)制轉(zhuǎn)換為整數(shù)1或O。(2)如果數(shù)組元素中的“鍵”是一個(gè)字符串,且該字符串完個(gè)符合整數(shù)格式時(shí),數(shù)組元素的“鍵”將被強(qiáng)制轉(zhuǎn)換為整數(shù)(例如“9”將被強(qiáng)制轉(zhuǎn)換為整數(shù)9)。

(3)由于數(shù)組元素中的“鍵”唯一標(biāo)識(shí)一個(gè)元素,因此數(shù)組中元素的“鍵”不能相等(使用==比較)。如果兩個(gè)數(shù)組元素的“鍵”相等,“鍵”對(duì)應(yīng)的值將被覆蓋。

(4)不要在array()語(yǔ)言結(jié)構(gòu)中使用諸如”red=>””red”鍵值對(duì)的方式創(chuàng)建數(shù)組元素,也不要使用諸如$colors[red]=”red”的賦值語(yǔ)句的方式創(chuàng)建數(shù)組元素,否則程序的可讀性及運(yùn)行效率將大掃折扣。

4.數(shù)組元素“值”的訪問(wèn)訪問(wèn)數(shù)組元素值的方法和訪問(wèn)變量值的方法相同:通過(guò)指定數(shù)組名并在方括號(hào)內(nèi)指定”鍵名”的方式“訪問(wèn)”數(shù)組元素的”值”。使用這樣的方法訪問(wèn)數(shù)組,不僅可以讀取某個(gè)數(shù)組元素的“值”,還可以為數(shù)組添加數(shù)組元素以及修改數(shù)組元素的“值”,并可以像訪問(wèn)“變最”的方法訪問(wèn)數(shù)組元素的值。PHP提供兩種變量賦值方式:傳值賦值和傳地址賦值,對(duì)于數(shù)組同樣適用。5-3多維數(shù)組1.二維數(shù)組的創(chuàng)建

二維數(shù)組的創(chuàng)建方法和一維數(shù)組的創(chuàng)建方法相同。

方法一:直接將變量聲明為二維數(shù)組

方法二:使用array()語(yǔ)言結(jié)構(gòu)創(chuàng)建二維數(shù)組

2.二維數(shù)組元素“值”的訪問(wèn)

二維數(shù)組中存在兩個(gè)“鍵”,因此訪問(wèn)數(shù)組元素的“值“時(shí)需要指定這兩個(gè)”鍵”。例如:$students[“2010001”][“studentName”]對(duì)應(yīng)的值是”張三”,其中第一個(gè)鍵”2010001”用于指定二維數(shù)組$studcnts中的某一‘行”,第二個(gè)“鍵”$studentName用于指定二維數(shù)組$student的該“行”的某一“列”。只使用第一個(gè)“鍵“訪問(wèn)數(shù)組時(shí),訪問(wèn)的是二維數(shù)組中的某一“行”,該行是一個(gè)一維數(shù)組。

(1)range()函數(shù)

語(yǔ)法格式:arrayrange(mixedstart,mixedend)

函數(shù)功能:快速創(chuàng)建一個(gè)從start到end范圍的數(shù)字?jǐn)?shù)組或字符數(shù)組。

函數(shù)說(shuō)明:如果start>end,序列將從start到end。

(2)explode()函數(shù)

語(yǔ)法格式:arrayexplode(stringseparator,stringst)

函數(shù)功能:使用指定的字符串分隔符separator分割字符串str,將分割后的字符串放到數(shù)組中,并返回該數(shù)組。

(3)array_combine()函數(shù)

語(yǔ)法格式:array_combine(arraykeys,arrayvalues)

函數(shù)功能:創(chuàng)建一個(gè)新數(shù)組,用數(shù)組keys的值位作為新數(shù)組的“鍵”,數(shù)組values的值作為新數(shù)組的“值”。

(4)array_fill()函數(shù)

語(yǔ)法格式:arrayarray_fill(intstart_key,intlength,mixedvalue)

函數(shù)功能:創(chuàng)建一個(gè)數(shù)組,并為該數(shù)組添加length個(gè)數(shù)組元素,數(shù)組元素的“鍵“,從start_key處開(kāi)始始遞增,每個(gè)數(shù)組元素的值為value。

說(shuō)明:length必須是一個(gè)大于零的數(shù)值,否則PHP會(huì)提示W(wǎng)arning警告信息。(5)array_pad()函數(shù)語(yǔ)法格式arrayarray_pad(arrayarr,intpad_size,mixedpad_value)

函數(shù)功能:array_pad()函數(shù)返回?cái)?shù)組arr的一個(gè)拷貝,并用pad_value將其填補(bǔ)到pad_size指定的長(zhǎng)度。如果Pad_size為正,則數(shù)組被填補(bǔ)到右側(cè),如果為負(fù)則從左側(cè)升始填補(bǔ)。如果pad_size的絕對(duì)值小于或等于input數(shù)組的長(zhǎng)度則沒(méi)有任何填補(bǔ)。

2.數(shù)組統(tǒng)計(jì)函數(shù)

(1)count()函數(shù)

語(yǔ)法格式:intcount(arrayarr[intmode])

函數(shù)功能:統(tǒng)計(jì)并計(jì)算數(shù)組arr中元素的個(gè)數(shù)。如果數(shù)組arr是多維數(shù)組,可將mode參數(shù)的值設(shè)為常量COUNT_RECURSIVE(或整數(shù)l),計(jì)算數(shù)組arr中所有元素的個(gè)數(shù);mode的默認(rèn)值是0。該函數(shù)的別名函數(shù)為sizeof()。

(2)max()函數(shù)

語(yǔ)法格式:mixedmax(arrayarr[,array……])

函數(shù)功能:統(tǒng)計(jì)并計(jì)算數(shù)組arr中元素的最大值。

說(shuō)明:PHP會(huì)將非數(shù)值的字符串當(dāng)成0處理,但如果這個(gè)正是最大的數(shù)值則仍然會(huì)返回一個(gè)字符串。如果多個(gè)數(shù)組元素的值為0且是最大值,函數(shù)會(huì)返回其中數(shù)值的0,如果數(shù)組元素中沒(méi)有數(shù)值的O,則返回按字母表順序最大的字符串。

(3)min()函數(shù)語(yǔ)法格式:mixedmin(arrayarr[,array…])

函數(shù)功能:統(tǒng)計(jì)并計(jì)算數(shù)組arr中元素的最小值。

說(shuō)明:PHP會(huì)將數(shù)組arr中的字符串當(dāng)成0處理,如果字符串正是數(shù)組arr中最小的數(shù)值,則仍然會(huì)返回一個(gè)字符串:min()函數(shù)返回一個(gè)字符串時(shí),該字符串為數(shù)組中順序靠前的字符串。

(4)array_sum()函數(shù)

語(yǔ)法格式::numberarry_sum(arrayarr)

函數(shù)功能:統(tǒng)計(jì)并計(jì)算數(shù)組arr中的所有元素值的和,array_sum()返回整數(shù)或浮點(diǎn)數(shù)。說(shuō)明:PHP會(huì)將數(shù)組arr中的非數(shù)值類型的元素值自動(dòng)類型轉(zhuǎn)換為整數(shù)或浮點(diǎn)數(shù)。(5)array_product()函數(shù)

語(yǔ)法格式:numberarray_product(arrayarr)

函數(shù)功能:統(tǒng)計(jì)并計(jì)算數(shù)組arr中所有元素值的乘積,該函數(shù)返回整數(shù)或浮點(diǎn)數(shù)。說(shuō)明:PHP會(huì)將數(shù)組arr中的非數(shù)值類型的數(shù)據(jù)自動(dòng)類型轉(zhuǎn)換為整數(shù)或浮點(diǎn)數(shù)。(6)array_count_values()函數(shù)

語(yǔ)法格式:arrayarray_count_values(arrayarr)

函數(shù)功能:統(tǒng)計(jì)并計(jì)算數(shù)組arr中所有元素的值出現(xiàn)的次數(shù)。

3.數(shù)組指針函數(shù)4.數(shù)組和變量間的轉(zhuǎn)換函數(shù)5.數(shù)組遍歷語(yǔ)言結(jié)構(gòu)

6.數(shù)組檢索函數(shù)7.數(shù)組排序函數(shù)8.數(shù)組與數(shù)據(jù)結(jié)構(gòu)9.數(shù)組集合運(yùn)算函數(shù)復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入:數(shù)組(Array)是一組批量的數(shù)據(jù)存儲(chǔ)空間,這一組存儲(chǔ)空間在內(nèi)存是鄰接的,每一個(gè)存儲(chǔ)空間存儲(chǔ)了一個(gè)數(shù)組元素,元素之間使用“鍵”(key)來(lái)識(shí)別,通過(guò)數(shù)組名和“鍵”的組合數(shù)組中每一個(gè)元素的訪問(wèn)。然后按以下內(nèi)容講解:(1)講解數(shù)組的基本概念(2)通過(guò)演示講解一維數(shù)組的創(chuàng)建(3)介紹多維數(shù)組(4)介紹數(shù)組處理函數(shù)及應(yīng)用最后對(duì)本次課內(nèi)容進(jìn)行總結(jié)授課章節(jié):第六章PHP的數(shù)據(jù)采集課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解瀏覽器端數(shù)據(jù)的各種提交方式,如何創(chuàng)建FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集,PHP程序各種數(shù)據(jù)采集的方法,以及如何實(shí)現(xiàn)文件的上傳功能。通過(guò)本章的學(xué)習(xí),讀者可以結(jié)合PHP數(shù)組實(shí)現(xiàn)功能復(fù)雜的“用戶注冊(cè)系統(tǒng)”。教學(xué)重點(diǎn):設(shè)計(jì)FORM表單、文件上傳的表單的設(shè)計(jì)以及如何實(shí)現(xiàn)文件上傳功能。教學(xué)難點(diǎn):在FORM表單中使用數(shù)組文件上傳的具體流程、與文件上傳有關(guān)的配置 多文件上傳的實(shí)現(xiàn)(可以參考習(xí)題以及習(xí)題答案)。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:

6-1瀏覽器端數(shù)據(jù)的提交方式

提交方式

GET提交方式是將“請(qǐng)求”數(shù)據(jù)以查詢字符串(QueryString)格式附在URL之后“提交”數(shù)據(jù)。例如:

=victor&password=1234&confirmpassword=1234在這個(gè)URL中,問(wèn)號(hào)“”表示查詢字符串的開(kāi)始,問(wèn)號(hào)“”后面的字符串參數(shù)"userName=victor&password=1234&confirmPassword=1234”為查尋字符串。可以看出:查詢字符串可以包含多個(gè)參數(shù),每個(gè)參數(shù)以“參數(shù)名=參數(shù)值”的格式定義,參數(shù)之間使用“&”相連,最后再將查詢字符串使用“”2.POST提交方式POST數(shù)據(jù)提交方式一般通過(guò)FORM表單實(shí)現(xiàn),由于默認(rèn)情況下FORM表單的數(shù)據(jù)提交方式為GET方式,必須在FORM表單的<form/>標(biāo)簽中加入屬性:method=“post”,將數(shù)據(jù)提交方式修改為POST方式。

和POST混合提交方式還可以使用FORM表單實(shí)現(xiàn)GET和POST混合提交方式,即向WFB服務(wù)器某PHP程序發(fā)出“GET請(qǐng)求”的同時(shí),還向該P(yáng)HP程序發(fā)出“POST清求”.

4.兩種提交方式的比較

POST提交方式比GET提交方式安全。這是由于GET提交方式提交的數(shù)據(jù)將出現(xiàn)在URL查詢字符串中,并且這些帶有查詢字符串的URL可以被瀏覽器緩存到歷史記錄中。因此諸如用戶注朋、登錄等系統(tǒng),不建議使用GFT提交方式。

POST提交方式可以提交更多的數(shù)據(jù)。理論上講POST提交方式提交的數(shù)據(jù)沒(méi)有大小限制,而GET提交方式提交的數(shù)據(jù)由于出現(xiàn)在URL查詢字符串中,而URL的長(zhǎng)度是受限制的(例如IE瀏覽器對(duì)URL長(zhǎng)度的限制是2083字節(jié))。例如:新聞發(fā)布系統(tǒng)中提交篇幅較長(zhǎng)的新聞信息時(shí),不建議使用GET提交方式:帶有文件上傳功能的FORM表單則必須使用POST提交方式。不同的“提交”方式對(duì)應(yīng)的服務(wù)器端數(shù)據(jù)“采集”方式不同。

6-2相對(duì)路徑和絕對(duì)路徑

1.絕對(duì)路徑

絕對(duì)路徑是與相對(duì)路徑相對(duì)立的,通常是一個(gè)完整的URL,該URL由兩個(gè)部分構(gòu)成:scheme:用來(lái)描述尋找數(shù)據(jù)所采用的機(jī)制,即:協(xié)議。如http協(xié)議和ftp協(xié)議等位置(Location):用來(lái)描述到哪兒去尋找數(shù)據(jù)的資源

這兩部分使用“:對(duì)路徑相對(duì)路徑可以分為兩類:server-relative路徑與relative路徑。server-relative路徑是以斜杠“/”開(kāi)頭的相對(duì)路徑。在HTML中,以斜杠“/”開(kāi)頭的相對(duì)路徑表示從WEB服務(wù)器的根目錄下開(kāi)始查找相應(yīng)的資源文件。使用默認(rèn)配置安裝WAMP后,目錄“C:/wamp/www”為Apache服務(wù)器的根目錄,因此使用相對(duì)路徑“/”訪問(wèn)資源時(shí),訪問(wèn)的是目錄“C:/wamp/www”下的頁(yè)面;使用相對(duì)路徑“/6/”訪問(wèn)資源時(shí),訪問(wèn)的是目錄“C:/wamp/www”中的目錄“6”下的register.html文件。relative路徑不以斜杠開(kāi)頭。此時(shí)當(dāng)文件l訪問(wèn)文件2(HTIL頁(yè)面、PHP程序或圖片等)資源時(shí),將從文件1的當(dāng)前目錄作為起點(diǎn)查找文件2資源。例如當(dāng)目錄“C:/wamp/www/6/”3.相對(duì)路徑其它概念

(1)同一個(gè)日錄下的資源訪問(wèn)如果文件1和文件2在同一個(gè)日錄,這兩個(gè)文件間的相互訪問(wèn)直接使用文件名即可。(2)如何表示當(dāng)前目錄

.表示文件的當(dāng)前日錄。

(3)如何表示上級(jí)目錄

../表示文件所在目錄的上一級(jí)目錄,../../表示文件所在目錄的上上級(jí)目錄,以此類推。(4)如何表示下級(jí)目錄如果文件1訪問(wèn)下級(jí)目錄中文件2,直接指定該目錄和文件2的文件名即可。6-3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集

FORM表單由三部分組成:

表單標(biāo)簽:定義了表單處理程序及數(shù)據(jù)提文方式等信息。

表單控件:包括單行文本框、密碼框、隱藏域、多行文本框、復(fù)選框、單選框、下拉選擇框和文件上傳框等表單控件。

表單按鈕:包括提交按鈕、復(fù)位按鈕和一般按鈕。

1.表單標(biāo)簽<form></form>

表單標(biāo)簽<form>常用的屬性有action、method、enctype、title、name等。

(1)action屬書設(shè)置當(dāng)前表單數(shù)據(jù)“提交”的目的地址。當(dāng)不設(shè)置action屬性,或設(shè)置值等于空字符串(即action="")時(shí),表單數(shù)據(jù)提交給當(dāng)前頁(yè)面。

(2)method屬性設(shè)置表單數(shù)據(jù)的提交方式。method屬性的值為GET或POST,默認(rèn)為GET。

(3)title屬性設(shè)置表單的提示信息。當(dāng)用戶的鼠標(biāo)在表單處停留時(shí),瀏覽器用一個(gè)黃色的小浮標(biāo)顯示提示文本。(4)enctype屬性設(shè)置提交表單數(shù)據(jù)時(shí)的編碼方式.enctype屬性的位為multipart/form-data或application/x-www-urlencodded,默認(rèn)為”application/x-www-form-urlencoded”。當(dāng)一個(gè)FORM表單‘中存在文件上傳框時(shí),必須將enctype屬性設(shè)置為multipart/form-data編碼方式。

(5)name屬性為當(dāng)前的FORM表單命名。

2.表單控件

(1)單行文本框(2)密碼樞(3)多行文本樞(4)隱藏域(5)復(fù)選樞

(6)單選樞(7)文件上傳框(8)下拉選擇框

注意:表單控件嵌套在FORM表單中才有意義,每個(gè)表單控件都要一個(gè)name屬性進(jìn)行標(biāo)識(shí)。這是因?yàn)閃EB服務(wù)器將依據(jù)表單控件的name屬性判斷傳遞給服務(wù)器的每個(gè)值分別是由哪個(gè)表單控件產(chǎn)。為了確保數(shù)據(jù)的準(zhǔn)確采集,需要為每個(gè)表單控件定義一個(gè)獨(dú)一無(wú)二的名稱(同為一個(gè)組的單選框以及在表單控件中使用數(shù)組兩種情況除外)。3.在表單控件中使用數(shù)組在一個(gè)HTML頁(yè)面中,有時(shí)并不清楚某種表單控件的具體個(gè)數(shù)。例如:在進(jìn)行多文件上傳時(shí),并不能確定瀏覽器用戶究竟選擇多少個(gè)上傳文件,更無(wú)法確定頁(yè)面中需要多少個(gè)文件上傳框。在表單控件中使用數(shù)組可以解決類似的問(wèn)題。

在表單控件的name屬性值后面加上方括號(hào)“[]”從而實(shí)現(xiàn)在表單控件中使用數(shù)組。使用表單控件數(shù)組后,當(dāng)表單提交時(shí),相同name屬性的表單控件則以數(shù)組的方式向WEB服務(wù)器提交多個(gè)數(shù)據(jù)。

4.表單按鈕

(1)提交按鈕(2)圖像提交按鈕(3)重置按鈕(4)自定義按鈕

表單綜合應(yīng)用

6-4使用$_GET和$_POST“采集”表單數(shù)據(jù)

當(dāng)瀏覽器向WFB服務(wù)器某PHP程序提交數(shù)據(jù)后,該P(yáng)HP程序應(yīng)該根據(jù)其“提交”方式?jīng)Q定使用何種數(shù)據(jù)“采集”方法。當(dāng)瀏覽器以GET方式提交的數(shù)據(jù)時(shí),服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變最$GET“采集”提交數(shù)據(jù):當(dāng)瀏覽器以POST方式提交的數(shù)據(jù)時(shí),服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變量$_POST“采集”提交數(shù)據(jù);當(dāng)以POST方式提交的請(qǐng)求數(shù)據(jù)中包含上傳文件時(shí),服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變星$_FILES“采集“上傳文件。

6-5上傳文件的“數(shù)據(jù)采集”

1.與上傳相關(guān)的配置

下面的配置選項(xiàng)保存在配置文件中,可以適當(dāng)?shù)男薷倪@些的配置選項(xiàng)滿足特定的文件上傳需要。file_uploads:配置了是否允許通過(guò)HTTP協(xié)議上傳文件。默認(rèn)值為On,表示PHP預(yù)處理器支持文件上傳功能。典型配置示例:file_uploads=On。

post_max_size:使用POST提交方式提交表單數(shù)據(jù)時(shí),post_max_size選項(xiàng)配置了PHP預(yù)處理器能夠接受的最大表單數(shù)據(jù)大小。默認(rèn)值為8M,表示表單中所有數(shù)據(jù)(包括上傳文件)大小之和必須小于8M字節(jié),否則PHP程序?qū)⒉荒懿杉饺魏蔚谋韱螖?shù)據(jù)。即當(dāng)表單數(shù)據(jù)大小大:post_max_size選項(xiàng)定義的值時(shí),提交表單后,$_GET、$_POST和$_FILES將為空數(shù)組。典型配置示例:post_max_size=8M。

文件上傳流程

3.預(yù)定義變最$_FlLES

4.預(yù)定義變量$_FILES文件上傳的實(shí)現(xiàn)

6-6WEB服務(wù)器端其它數(shù)據(jù)采集方法

復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入,本章首先講解瀏覽器端數(shù)據(jù)的提交方式,然后講解如何創(chuàng)建FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集,最后講解PHP程序各種數(shù)據(jù)采集的方法,通過(guò)本章的學(xué)習(xí),學(xué)生可以結(jié)合PHP數(shù)組實(shí)現(xiàn)功能復(fù)雜的“用戶注冊(cè)系統(tǒng)”。然后按以下內(nèi)容講解:(1)介紹瀏覽器端數(shù)據(jù)的提交方式(2)詳細(xì)講解相對(duì)路徑和絕對(duì)路徑(3)通過(guò)演示講解使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集(4)詳細(xì)講解使用$_GET和$_POST采集表單數(shù)據(jù)最后對(duì)本次課內(nèi)容進(jìn)行總結(jié)授課章節(jié):第七章PHP自定義函數(shù)課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解PHP文件間相互引用的4個(gè)PHP語(yǔ)言結(jié)構(gòu),如何創(chuàng)建和調(diào)用用戶自定義函數(shù),創(chuàng)建具有文件上傳功能的自定義函數(shù),重構(gòu)“用戶注冊(cè)系統(tǒng)”的代碼,增強(qiáng)代碼重用性。教學(xué)重點(diǎn):設(shè)計(jì)具有文件上傳功能的自定義函數(shù),重構(gòu)“用戶注冊(cè)系統(tǒng)”的代碼設(shè)計(jì)。教學(xué)難點(diǎn):static關(guān)鍵字以及global關(guān)鍵字的使用、return語(yǔ)言結(jié)構(gòu)的使用、如何使用函數(shù)增強(qiáng)代碼重用性。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:7-1PHP文件間的引用

語(yǔ)言結(jié)構(gòu)

include語(yǔ)言結(jié)構(gòu)的語(yǔ)法格式:mixedinclude(stringresource)

include語(yǔ)言結(jié)構(gòu)的功能:incude語(yǔ)言結(jié)構(gòu)將一個(gè)資源文件resource載入到當(dāng)前PHP程序。字符串參數(shù):resource是一個(gè)資源文件的文件名,該資源可以是本地WEB報(bào)務(wù)器上的資源,如圖片、HTML頁(yè)面、PHP頁(yè)面等,也可以是互聯(lián)網(wǎng)上的資源。若找不到資源文件:語(yǔ)言結(jié)構(gòu)返回FALSE;若找到資源文件:resource,且資源文件resource沒(méi)有返回值,返回整數(shù)l,否則返網(wǎng)資源文件resource的返回值。

2.require與include語(yǔ)言結(jié)構(gòu)的比較

require語(yǔ)言結(jié)構(gòu)的語(yǔ)法格式及功能與include相同,只不過(guò)兩者之間存在著細(xì)微的區(qū)別。在錯(cuò)誤處理方便:使用include語(yǔ)言結(jié)構(gòu),如果被引用文件發(fā)生錯(cuò)誤或不能找到被引用文件,引用文件將提示W(wǎng)aming信息然后繼續(xù)執(zhí)行下面的語(yǔ)句。使用require語(yǔ)言結(jié)構(gòu),如果被引用文件發(fā)生錯(cuò)誤或不能找到被引用文件,引用文件將提示waming信息及Fatalerror:致命錯(cuò)誤信息然后終止程序運(yùn)行。

和require_once語(yǔ)言結(jié)構(gòu)include_once和require_once語(yǔ)言結(jié)構(gòu)分別對(duì)應(yīng)于include和require語(yǔ)言結(jié)構(gòu),使用include_once和require_once語(yǔ)言結(jié)構(gòu)可以有效避免多次引用同一個(gè)PHP文件而引起函數(shù)或變量的重復(fù)定義問(wèn)題的發(fā)生。

include_once語(yǔ)言結(jié)構(gòu)的語(yǔ)法格式:mixedinclude_once(stringresource)

include_once語(yǔ)言結(jié)構(gòu)功能:include_once語(yǔ)句將一個(gè)資源文件resource載入到當(dāng)前PHP程序中。若找不到資源文件resource,include_once語(yǔ)句返回隊(duì)FALSE。若找到資源文件resource,且該資源文件第一次載入,include_once語(yǔ)句返可整數(shù)1;若找到資源文件resource,且該資源己經(jīng)載入,include_once語(yǔ)句返TRUE。

7-2函數(shù)概述

1.函數(shù)的概念

程序設(shè)計(jì)中,可以將經(jīng)常使用的代碼段獨(dú)立出來(lái),形成單獨(dú)的子程序,這些子程序就是函數(shù)。函數(shù)只需要定義一次,之后便可以重復(fù)使用,故可以增強(qiáng)了代碼的重用性。一般而言,函數(shù)的功能比較單一,因此函數(shù)的編寫和維護(hù)比較容易。2.函數(shù)的分類PHP函數(shù)種類和變量種類的劃分方法相似,PHP中有三種類型的函數(shù):內(nèi)置函數(shù)、自定義函數(shù)和變量函數(shù)。

內(nèi)置函數(shù)類似了于預(yù)定義變舉。PHP內(nèi)置函數(shù)是PHP已預(yù)定義好的函數(shù),這些函數(shù)在編程時(shí)無(wú)需定義,可以直接使用。

自定義函數(shù)類似于自定義變量,由程序員根據(jù)特定需要編寫出來(lái)的代碼段。和內(nèi)置函數(shù)不同,自定義函數(shù)只有在定義之后才可以使用。

變量函數(shù)類似于可變變量,變量函數(shù)的函數(shù)名為一個(gè)變量。三種類型的函數(shù)都有一個(gè)共同特點(diǎn):調(diào)用函數(shù)時(shí),函數(shù)名大小寫不敏感,例如:調(diào)用md5()函數(shù)和調(diào)用MD5()函數(shù)實(shí)質(zhì)上是調(diào)用同一個(gè)函數(shù)。

7-3自定義函數(shù)

1.自定義函數(shù)的定義

在PHP中,定義自定義函數(shù)的語(yǔ)法格式為:

functionfunctionName($param1,$param2,$param3$paramn=defaultValue){函數(shù)體;

return返回值;}2.自定義函數(shù)的聲明和調(diào)用調(diào)用自定義函數(shù)時(shí)需要注意:應(yīng)該先聲明自定義函數(shù),然后才可以在調(diào)用處使用如下方式調(diào)用自定義函數(shù):

functionName(paramlValue,param2Value,param3ValueparamnValue)

當(dāng)函數(shù)的定義和函數(shù)的調(diào)用位于不同的PHP文件時(shí),需要使用include(include_once)或require語(yǔ)言結(jié)構(gòu)(require_once)引用函數(shù)定義所在的PHP文件,這個(gè)過(guò)程稱為函數(shù)的聲明。當(dāng)函數(shù)的定義和函數(shù)的調(diào)用位于幾同一個(gè)PHP文件時(shí),此時(shí)無(wú)須函數(shù)的聲明即可直接調(diào)用自定義函數(shù)。

3.自定義函數(shù)的參數(shù)賦值

和變暈賦值方法相同,自定義函數(shù)的參數(shù)賦值有兩種方法:傳值賦值和傳地址賦值。(1)傳值賦值默認(rèn)情況下,自定義函數(shù)的參數(shù)是按傳值賦值的方式為函數(shù)參數(shù)賦值,即將一個(gè)值的“拷貝”賦值給函數(shù)的參數(shù)。(2)傳地址賦值自定義函數(shù)的參數(shù)也可使用傳地址賦值,即:將一個(gè)變量的“引用”傳遞給函數(shù)的參數(shù)。和變量傳地址賦值的方式一樣,在函數(shù)的參數(shù)名前追加一個(gè)“&”符實(shí)現(xiàn)傳地址賦值。4.變量的作用域和global關(guān)鍵字

4.變量的作用域取決于變量在PHP程序的位置:

?在函數(shù)內(nèi)定義的變景(包括函數(shù)的參數(shù))為局部變聳,局部變量在調(diào)用函數(shù)結(jié)束后被白動(dòng)回收。

?在函數(shù)外定義的變量為全局變量,聲明后的全局變量可以被PHP程序中所有語(yǔ)句訪問(wèn)(函數(shù)內(nèi)的PHP語(yǔ)句除外),當(dāng)程序執(zhí)行到程序末尾的時(shí)候,全局變量才被自動(dòng)回收。全局變最也可以應(yīng)用于include語(yǔ)句和require語(yǔ)句所引用的PHP程序文件。

如果函數(shù)中的PHP語(yǔ)句要訪問(wèn)全局變量,需要在函數(shù)內(nèi)定義的變量名前加關(guān)鍵字global,此時(shí)函數(shù)內(nèi)局部變量變?yōu)槿肿兞俊?/p>

5.變量的生存周期和static關(guān)鍵字

函數(shù)內(nèi)定義的變量生存周期是短暫的:每一次函數(shù)調(diào)用的開(kāi)始到這一次函數(shù)調(diào)用的結(jié)束。有時(shí)希望函數(shù)中的變量能夠從這次調(diào)用一直存活到下次調(diào)用,此時(shí)需要在該變量前加上static關(guān)鍵字。static關(guān)鍵字一般在函數(shù)定義中使用,用于修飾局部變量。

6.變量函數(shù)

變量函數(shù)類似于可變變量,變量函數(shù)的函數(shù)名為變量。使用變量函數(shù)可以實(shí)現(xiàn)通過(guò)改變變量的值的方法調(diào)用不同的函數(shù)。變量函數(shù)的調(diào)用方法如下:

$varName(paramlValue,param2Value,param3Valu3,…paramnValue)

7-4自定義函數(shù)綜合示例文件上傳功能的函數(shù)upload()的制作

表單綜合應(yīng)用

<pllp

functionupload($file,$filePath){

$error=$file[‘error’];

switch($error){

case0:

$fileName=$file[‘nanle’];

$fileTemp=$file[‘tmp_name’];

$destination=$filePath.”/”.$fileName;move_uploaded_file($fileTemp,$destination);return“文件上傳成功!”;case1:return“上傳附件超過(guò)了中upload_max_filesize選項(xiàng)限制的值!”case2:return“上傳附件的大小超過(guò)了form表單MAX_FILE_SIZE選項(xiàng)指定的值!”case3:return“附件只有部分被上傳!”case4:return“沒(méi)有選擇上傳附件”}}>復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入:本章一改先介紹PHP文件間相互引月!的4個(gè)PHP語(yǔ)言結(jié)構(gòu),然后重點(diǎn)介紹如何創(chuàng)建和調(diào)用用戶白定義函數(shù),通過(guò)本章的學(xué)習(xí),學(xué)生可以創(chuàng)建具有文件上傳功能的自定義函數(shù),重構(gòu)“用戶注冊(cè)系統(tǒng)”的代碼,增強(qiáng)代碼重用性。講解新課:(1)對(duì)上次課進(jìn)行回顧并提問(wèn)。(2)通過(guò)例子詳細(xì)講解文件引用語(yǔ)句及各種語(yǔ)句之間的區(qū)別(3)介紹函數(shù)的概念(4)講解自定義函數(shù)相關(guān)的語(yǔ)法及用法(5)介紹return語(yǔ)言結(jié)構(gòu)(6)課堂總結(jié)。授課章節(jié):第八章MySQL數(shù)據(jù)庫(kù)課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解數(shù)據(jù)庫(kù)的功能、數(shù)據(jù)庫(kù)常用的專業(yè)術(shù)語(yǔ)、常用的SQL語(yǔ)句。通過(guò)具體案例學(xué)生管理系統(tǒng)設(shè)計(jì)該系統(tǒng)的數(shù)據(jù)庫(kù),通過(guò)學(xué)習(xí),學(xué)生具備簡(jiǎn)單數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的能力,為今后設(shè)計(jì)更為復(fù)雜的應(yīng)用系統(tǒng)奠定堅(jiān)實(shí)的基礎(chǔ)。教學(xué)重點(diǎn):數(shù)據(jù)庫(kù)的設(shè)計(jì)流程,如何設(shè)計(jì)E-R圖,主鍵、外鍵、約束等專業(yè)術(shù)語(yǔ)在MySQL數(shù)據(jù)庫(kù)中的實(shí)現(xiàn),常用的存儲(chǔ)引擎例如MyISAM存儲(chǔ)引擎、InnoDB存儲(chǔ)引擎,MySQL字符集的設(shè)置,MySQL數(shù)據(jù)庫(kù)管理、表的管理、更新操作、查詢操作。教學(xué)難點(diǎn):數(shù)據(jù)庫(kù)的設(shè)計(jì)流程、開(kāi)發(fā)流程,如何設(shè)計(jì)數(shù)據(jù)庫(kù)表、如何選擇數(shù)據(jù)庫(kù)表的主鍵,如何防止中文亂碼問(wèn)題,Create語(yǔ)句、drop語(yǔ)句的使用,Select語(yǔ)句的使用、insert語(yǔ)句、update語(yǔ)句、delete語(yǔ)句的使用,如何實(shí)現(xiàn)分頁(yè),MySQL特殊字符序列。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:

8-1數(shù)據(jù)庫(kù)概述

1.數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)是一種專門存儲(chǔ)信息和維護(hù)信息的容器,嚴(yán)格地說(shuō)數(shù)據(jù)庫(kù)是“按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理信息的倉(cāng)庫(kù)”。

外觀上,數(shù)據(jù)庫(kù)中的二維表(簡(jiǎn)稱數(shù)據(jù)庫(kù)表)和電子表格Excel是相同的。數(shù)據(jù)庫(kù)表是由列和行構(gòu)成,數(shù)據(jù)庫(kù)表中的一列稱為一個(gè)字段,每個(gè)字段用于存儲(chǔ)某種數(shù)據(jù)類型的數(shù)據(jù):數(shù)據(jù)庫(kù)表中的一行稱為一條記錄,每條記錄包含表中的一條詳細(xì)信息。數(shù)據(jù)庫(kù)是一種專門存儲(chǔ)信息和維護(hù)信的容器,嚴(yán)格地說(shuō)數(shù)據(jù)庫(kù)是“按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理信息的倉(cāng)庫(kù)”。外觀上,數(shù)據(jù)庫(kù)中的二維表(簡(jiǎn)稱數(shù)據(jù)庫(kù)表)和電子表格Excel是相同的。數(shù)據(jù)庫(kù)表是由列和行構(gòu)成,數(shù)據(jù)庫(kù)表中的一列稱為一個(gè)字段,每個(gè)字段用于存儲(chǔ)某種數(shù)據(jù)類型的數(shù)據(jù):數(shù)據(jù)庫(kù)表中的一行稱為一條記錄,每條記錄包含表中的一條詳細(xì)信息。2.關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS或relationaldatabasemanagementsystem)就是管理關(guān)系數(shù)據(jù)庫(kù)的軟件系統(tǒng)。關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)主要功能就是創(chuàng)建關(guān)系數(shù)據(jù)庫(kù),并且在關(guān)系數(shù)據(jù)庫(kù)中創(chuàng)建各種數(shù)據(jù)庫(kù)對(duì)象(表、索引、視圖、存儲(chǔ)過(guò)程等)以及維護(hù)各個(gè)數(shù)據(jù)庫(kù)對(duì)象.對(duì)于初學(xué)者而言,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)最重要的功能莫過(guò)于創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)庫(kù)表以及完成數(shù)據(jù)庫(kù)表記錄的添加、修改、刪除和查詢等操作。

3.結(jié)構(gòu)化查詢語(yǔ)言SQL

結(jié)構(gòu)化查詢語(yǔ)言的英文全稱是structuredquerylanguage,簡(jiǎn)稱SQL。SQL是一種應(yīng)用廣泛的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,用于定義和管理關(guān)系數(shù)據(jù)庫(kù)中的各種對(duì)象(表、索引、視圖、存儲(chǔ)過(guò)程等),也可以用于查詢、修改和刪除數(shù)據(jù)庫(kù)表中的記錄。8-2數(shù)據(jù)庫(kù)的設(shè)計(jì)

數(shù)據(jù)庫(kù)的設(shè)計(jì)一般要從E-R模型開(kāi)始,之后的步驟如下:

(1)為每個(gè)實(shí)體建立一張表

(2)為每個(gè)表選擇個(gè)主鍵(建議添加一個(gè)沒(méi)有實(shí)際意義的字段作為土鍵)(3)增加外鍵以表示一對(duì)多關(guān)系

(4)建立新表表示多對(duì)多關(guān)系

(5)定義約束條件

(6)評(píng)價(jià)關(guān)系的質(zhì)量,并進(jìn)行必要的改進(jìn)(關(guān)于范式等知識(shí)請(qǐng)參考其他數(shù)據(jù)庫(kù)書籍)(7)為每個(gè)字段選擇合適的數(shù)據(jù)類型和取值范圍

模型

E-R(Entity-Relationship)模型即實(shí)體-關(guān)系模型主要用于定義數(shù)的存儲(chǔ)需求,該模型己經(jīng)泛用廣用于關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中。E-R模型由實(shí)體、屬性和關(guān)系三個(gè)基本要素構(gòu)成。2.主鍵(Primarykey)數(shù)據(jù)庫(kù)表要求表的中的每一行記錄都必須是唯一的,即在同一張表中不允許出現(xiàn)完全相同的兩條記錄。在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),為了保證記錄的“唯一性”,最為書遍、最為推薦的做法是為表定義一個(gè)主鍵(primarykey)。數(shù)據(jù)庫(kù)表中主鍵有以下兩個(gè)特征:(1)表的主鍵可以由一個(gè)字段構(gòu)成,也可以由多個(gè)字段構(gòu)成(這種情況稱為義合主鍵)。(2)數(shù)據(jù)庫(kù)表中主鍵的直具有唯一性且不能取空值(NULL),當(dāng)數(shù)據(jù)庫(kù)表中的主鍵由多個(gè)字段構(gòu)成時(shí)每個(gè)字段的值不能取NULL值。

3.實(shí)體間的關(guān)系與外鍵(Foreignkey)

班級(jí)實(shí)體和班主任實(shí)體之間為一對(duì)一關(guān)系,班級(jí)實(shí)體和學(xué)生實(shí)體之間為一對(duì)多關(guān)系,學(xué)生實(shí)體和課程實(shí)體之問(wèn)為多對(duì)多關(guān)系。實(shí)體間的關(guān)系可以通過(guò)外鍵來(lái)表示。如果表A中的一個(gè)字段a對(duì)應(yīng)于表B的土鍵b,則字段a稱為表A的外鍵。此時(shí)存儲(chǔ)在表A中字段a的值,同時(shí)這個(gè)字段位也是表B主鍵b的值。

4.約束(constraint)

常用的約束條件有六種:

主鍵(primarykey)約束外鍵(foreignkey)約束

唯一性(unique)約束

默認(rèn)值(default)約束

非空(notNULL)約束

檢查(check)約束

8-3MySQL簡(jiǎn)介

服務(wù)器的啟動(dòng)

2.連接MysQL服務(wù)器

啟動(dòng)MySQL服務(wù)器后,需要使用MySQL客戶端成功打開(kāi)一個(gè)MySQL服務(wù)器連接,才能實(shí)現(xiàn)與MySQL數(shù)據(jù)庫(kù)之間的交互,如圖所示。MySQL提供了MySQLconsole命令窗口客戶端實(shí)現(xiàn)與MySQL服務(wù)器之間的交互。

和InnoDB存儲(chǔ)引擎

8-4字符集

1.字符集簡(jiǎn)介

字符集

中的字符集轉(zhuǎn)換過(guò)程

字符集的設(shè)置

腳本文件

8-5MySQL數(shù)據(jù)庫(kù)管理1.創(chuàng)建數(shù)據(jù)庫(kù)2.選擇當(dāng)前操作的數(shù)據(jù)庫(kù)

3.顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)

4.刪除數(shù)據(jù)庫(kù)8-6數(shù)據(jù)庫(kù)表的管理

1.數(shù)據(jù)類型

MySQL共有3種數(shù)據(jù)類型,分別是數(shù)值類型、字符串類型和日期類型。數(shù)值類型之整數(shù)類型

數(shù)值類型之精確小數(shù)類型

符串類型之定長(zhǎng)字符串類型

字符串類型之變長(zhǎng)字符串類型

字符串類型之文木類型

日期類型之日期類型

日期類型之口期時(shí)間型

中的附加屬性MySQL還提供了一些附加屬性用于修飾數(shù)據(jù)類型,例如NULL和auto_increment。

MySQL提供了附加屬性NULL,NULL的意義為“沒(méi)有值”或“不確定的值”。auto_increment如果需要為某個(gè)表的某個(gè)字段進(jìn)行唯一編號(hào),以標(biāo)識(shí)每條記錄,在MySQL中可以將該字段設(shè)置為auto_increment(自動(dòng)增長(zhǎng))。

3.創(chuàng)建數(shù)據(jù)庫(kù)表

4.顯示數(shù)據(jù)庫(kù)表結(jié)構(gòu)

5.刪除數(shù)據(jù)庫(kù)表

8-7表記錄的更新操作

1.表記錄的添加2.表記錄的修改3.表記錄的刪除復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:(1)對(duì)上次課進(jìn)行回顧并提問(wèn)(2)介紹數(shù)據(jù)庫(kù)相關(guān)的概念(3)介紹數(shù)據(jù)庫(kù)設(shè)計(jì)有關(guān)的知識(shí)(4)簡(jiǎn)單介紹MySQL(5)詳細(xì)介紹MySQL中字符集的概念(6)通過(guò)演示講解MySQL的有關(guān)操作(7)介紹MySQL特殊字符序列(8)課堂總結(jié)授課章節(jié):第九章PHP與MySQL數(shù)據(jù)庫(kù)課時(shí)4學(xué)時(shí)教學(xué)目的:結(jié)合學(xué)生管理系統(tǒng)數(shù)據(jù)庫(kù),通過(guò)學(xué)習(xí),學(xué)生可以了解使用PHP函數(shù)實(shí)現(xiàn)PHP與MySQL數(shù)據(jù)庫(kù)之間的交互過(guò)程,并以用戶注冊(cè)系統(tǒng)為例學(xué)習(xí)該系統(tǒng)的實(shí)現(xiàn)過(guò)程。通過(guò)學(xué)習(xí),學(xué)生可以具備簡(jiǎn)單WEB應(yīng)用系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的能力。教學(xué)重點(diǎn):如何開(kāi)啟數(shù)據(jù)庫(kù)連接、如何關(guān)閉數(shù)據(jù)庫(kù)連接、關(guān)閉數(shù)據(jù)庫(kù)連接的時(shí)機(jī),字符集設(shè)置的方法,結(jié)果集遍歷函數(shù)的使用,用戶注冊(cè)系統(tǒng)的實(shí)現(xiàn)。教學(xué)難點(diǎn):關(guān)閉數(shù)據(jù)庫(kù)連接的時(shí)機(jī),如何防止SQL注入問(wèn)題。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:

9-1PHP中常用的MySQL操作函數(shù)

1.連接MySQL服務(wù)器

PHP中連接MySQL數(shù)據(jù)庫(kù)服務(wù)器最簡(jiǎn)單的函數(shù)是mysql_connect(),語(yǔ)法格式如下:resourcemysql_connect(striinghostname,stringusername,stringpassword)

函數(shù)功能:通過(guò)PHP程序連接MySql數(shù)據(jù)庫(kù)服務(wù)器。如果成功連接MySQL服務(wù)器,則返回憶個(gè)MySQL服務(wù)器連接標(biāo)識(shí)(link_identifier),否則返網(wǎng)FALSE。2.設(shè)置數(shù)據(jù)庫(kù)字符集調(diào)用PHP函數(shù)mysql_query(“setnames‘gbk’”)可以將character_set_client、character_set_connection和character_set_results的字符集設(shè)置為gbk字符集。3.關(guān)閉MySQL服務(wù)器連接mysql_close()函數(shù)的語(yǔ)法格式如下:boolmysql_close([resourcelink_identifier])

函數(shù)功能:mysq_close()函數(shù)關(guān)閉指定的連接標(biāo)識(shí)所關(guān)聯(lián)到的MySQL服務(wù)器的連接。如果沒(méi)有指定link_identifier,則關(guān)閉上一個(gè)打開(kāi)的連接。如果關(guān)閉成功則返回TRUE,失敗則返回FALSE。4.選擇當(dāng)前操作的數(shù)據(jù)庫(kù)使用函數(shù)mysql_select_db()可以設(shè)置當(dāng)前操作的數(shù)據(jù)庫(kù)。該函數(shù)的語(yǔ)法格式如下:boolmysql_select_db(stringdatabase_name[,resourcelink_identifier])

函數(shù)功能:如果沒(méi)有指定MySQL服務(wù)器連接標(biāo)識(shí)符,則使用上一個(gè)打開(kāi)的MySQL服務(wù)器連接。如果沒(méi)有打開(kāi)的連接,本函數(shù)將無(wú)參數(shù)調(diào)用mysql_connect()函數(shù)嘗試打開(kāi)一個(gè)新的MySQL服務(wù)器連接然后使用它。如果選擇當(dāng)前操作的數(shù)據(jù)庫(kù)成功則返回TRUE,否則返回FALSE。

5.發(fā)送SQL語(yǔ)句或MySQL命令

mysql_query()函數(shù)的語(yǔ)法格式如下:{bool|resouce}mysql_query(stringsql[,resourcelink_identifier])

函數(shù)功能:如果沒(méi)有指定MySQL服務(wù)器連接標(biāo)識(shí)link_identifier,則使用已打開(kāi)的連接。然后向數(shù)據(jù)庫(kù)引擎發(fā)送sql字符串(SQL語(yǔ)句或MySQL命令)。當(dāng)發(fā)送的sql字符串執(zhí)行失敗時(shí),mysql_query函數(shù)返回FALSE:發(fā)送的sql字符串是insert語(yǔ)句、update語(yǔ)句或delete語(yǔ)句,并且sql語(yǔ)句成功執(zhí)行時(shí),mysql_query()函數(shù)返回TUR;發(fā)送的sql字符串是select語(yǔ)句,并且select語(yǔ)句成功執(zhí)行時(shí),mysql_query()函數(shù)返回結(jié)果集(result)類型數(shù)據(jù)(實(shí)際是resource類型的數(shù)據(jù))。使用PHP的mysql_query()函數(shù)向MySQL服務(wù)器引擎發(fā)送insert語(yǔ)句、update語(yǔ)句或delete語(yǔ)句后,可以使用mysq_affected_rows()函數(shù)查看該SQL語(yǔ)句影響到的表記錄行數(shù)。mysql_affected_rows()函數(shù)的語(yǔ)法格式如下:intmysql_affected_rows([resourcelink_identifier])mysql_affected_rows()函數(shù)功能:取得最近一次與link_identifier關(guān)聯(lián)insert、update或delete語(yǔ)句所影響的記錄行數(shù)。

使用PHP的mysql_query()函數(shù)發(fā)送insert語(yǔ)句向某個(gè)數(shù)據(jù)庫(kù)表中添加記錄時(shí),若該數(shù)據(jù)庫(kù)表中的某個(gè)字段為auto_increment自增字段,可以使用mysql_insert_id()函數(shù)得到當(dāng)前insert語(yǔ)句執(zhí)行后的該字段值。mysql_insert_id()函數(shù)的語(yǔ)法格式如下:intmysql_insert_id([resourcelink_identifier])

mysql_insert_id()函數(shù)功能:mysql_insert_id()函數(shù)返回給定的link_identifier中上一條insert語(yǔ)句產(chǎn)生的auto_increment的ID號(hào);如果沒(méi)有指定link_identifier,則使用上一個(gè)打開(kāi)的連接。

mysql_query()函數(shù)還可以向MySQL務(wù)器引擎發(fā)送select語(yǔ)句,此時(shí)mysql_query函數(shù)將返回一個(gè)結(jié)果集(result)數(shù)據(jù),可以使用:mysql_num_rows()函數(shù)查看該select語(yǔ)句查詢到的表記錄行數(shù)。Mysql_num_rows()函數(shù)的語(yǔ)法格式如下:intmysql_num_rows(resourceresult)mysql_num_rows()語(yǔ)句功能:返回結(jié)果集result中記錄的行數(shù),該函數(shù)僅對(duì)select語(yǔ)句有效。結(jié)果集(result)使用過(guò)后,應(yīng)該盡快地將其占用的服務(wù)器內(nèi)存資源釋放,可以使用函數(shù)mysql_free_result()實(shí)現(xiàn),mysql_free_result()函數(shù)的語(yǔ)法格式如下:boolmysql_free_result(resourceresult)mysql_free_result()函數(shù)功能:釋放結(jié)果集result占用的服務(wù)器內(nèi)存資源,若執(zhí)行成功,返回TRUE,否則返回FALSE。使用mysql_query()函數(shù)還可以向MySQL服務(wù)器引擎發(fā)送MySQL命令。例如PHP語(yǔ)句”mysql_query(“setnames‘gbk’”);”將character_set_client、character_set_connection和character_set_results的字符集設(shè)置為gbk。6.遍歷結(jié)果集中的數(shù)據(jù)mysql_fetch_row()函數(shù)的語(yǔ)法格式:arraymysql_fetch_row(resourceresult)mysql_fetch_row()函數(shù)功能:從結(jié)果集result中取得下一行記錄,并將該記錄生成一個(gè)數(shù)組,數(shù)組的元素的鍵為從零開(kāi)始的整數(shù),數(shù)組元素的值依次為select語(yǔ)句中“字段列表”的值。若結(jié)果集result中沒(méi)有下一行記錄,則函數(shù)返回FALSE。mysql_fetch_array()函數(shù)的語(yǔ)法格式:arraymysql_fetch_array(resourceresult)mysql_fetch_array()函數(shù)功能:該函數(shù)時(shí)mysql_fetch_row()函數(shù)的擴(kuò)展版本,該函數(shù)的返回值中包括mysql_fetch_row()函數(shù)的返回值,還包括select居中“字段列表=>字段列表值”的數(shù)組元素。復(fù)習(xí)及作業(yè)布置:擴(kuò)展學(xué)習(xí)參考:課后反思:教學(xué)過(guò)程:復(fù)習(xí)導(dǎo)入:本章結(jié)合注朋登錄系統(tǒng)數(shù)據(jù)庫(kù)講解如何使用PHP函數(shù)實(shí)現(xiàn)PHP與MySql數(shù)據(jù)庫(kù)之間的交互,然后以用戶注冊(cè)系統(tǒng)為例講解該系統(tǒng)的實(shí)現(xiàn)過(guò)程,通過(guò)本章的學(xué)習(xí),學(xué)生將具備簡(jiǎn)單WEB應(yīng)用系統(tǒng)設(shè)計(jì).與開(kāi)發(fā)能力。授課章節(jié):第十章新聞發(fā)布系統(tǒng)的開(kāi)發(fā)課時(shí)4學(xué)時(shí)教學(xué)目的:通過(guò)學(xué)習(xí),學(xué)生可以了解傳統(tǒng)的結(jié)構(gòu)化方法開(kāi)發(fā)MIS系統(tǒng)的方法、流程以及分頁(yè)函數(shù)的制作過(guò)程,并具備復(fù)雜WEB應(yīng)用系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)的能力。教學(xué)重點(diǎn):新聞發(fā)布系統(tǒng)系統(tǒng)編碼實(shí)施,分頁(yè)的原理以及實(shí)現(xiàn)。教學(xué)難點(diǎn):新聞發(fā)布系統(tǒng)系統(tǒng)編碼實(shí)施,分頁(yè)的實(shí)現(xiàn)以及分頁(yè)函數(shù)的制作。教學(xué)實(shí)施過(guò)程設(shè)計(jì)教學(xué)內(nèi)容:10-1用phpmyadmin建立數(shù)據(jù)庫(kù)首先建立一個(gè)數(shù)據(jù)庫(kù)在這個(gè)數(shù)據(jù)庫(kù)下建立一個(gè)數(shù)據(jù)表,名為news。下面進(jìn)入一個(gè)重點(diǎn),那就是在表news下建立各個(gè)字段。那么,什么叫字段呢通俗點(diǎn),就是一類事物的總稱。比如說(shuō),所有的新聞發(fā)表時(shí)間用一個(gè)名詞來(lái)代表(從偶的經(jīng)驗(yàn)來(lái)看,用phpmyadmin建立字段可以用中文,但從習(xí)慣來(lái)說(shuō)還是用英文,沒(méi)辦法,計(jì)算機(jī)美國(guó)最牛嘛)。偶們用“time”來(lái)表示。在字段time下可以有很多“發(fā)表時(shí)間”,那么如何來(lái)區(qū)分這些時(shí)間呢,這個(gè)可以查詢其它字段下的內(nèi)容,比如偶們建立新聞的標(biāo)題的字段為“title”,title字段下的內(nèi)容按照常理說(shuō)來(lái)是沒(méi)有一樣的。所以可以通過(guò)一個(gè)標(biāo)題來(lái)查詢這個(gè)發(fā)表時(shí)間。其實(shí)我們可以讓每個(gè)title或time下的內(nèi)容都對(duì)應(yīng)一個(gè)編號(hào),那就是字段——“id”:字段“id”是一個(gè)人們默認(rèn)的首選字段,其它字段下的內(nèi)容可以重復(fù)出現(xiàn),但這個(gè)字段卻是從1開(kāi)始增大的阿拉伯?dāng)?shù)字。在設(shè)置這個(gè)字段時(shí),要設(shè)置主鍵、索引、唯一以及auto-increment。這個(gè)auto-increment就是自動(dòng)增加的意思。當(dāng)任一字段增加內(nèi)容時(shí),這個(gè)字段就自動(dòng)增加1,也就是說(shuō),任一字段都對(duì)應(yīng)一個(gè)唯一的id,比如1、2、0……下面談?wù)勑侣劜糠肿侄蔚慕ⅲ?.id:意義為每個(gè)新聞的編號(hào),它是唯一的,類型為tingint,這個(gè)tingint類型無(wú)須指定長(zhǎng)度,系統(tǒng)默為4;在“額外”中選擇auto-increment,并選擇主鍵。2.author:意義為作者(新聞發(fā)布人),設(shè)置類型為varchar,設(shè)置這個(gè)字段長(zhǎng)度時(shí),如果考慮作者均為中國(guó)人,則8個(gè)字節(jié)為上限(4個(gè)漢字),但如果考慮到作者可能為外國(guó)人,8個(gè)字節(jié)顯然太少了,對(duì)其它字段也存在同樣的問(wèn)題,在這里偶們把長(zhǎng)度設(shè)置為8吧。3.title:意義為新聞標(biāo)題,類型為varchar,長(zhǎng)度為60吧,屬性為primanykey。4.content:意義為新聞的內(nèi)容,類型為text

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論