版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Web前端開發(fā)(中級(jí))(上冊(cè))PHP操作數(shù)據(jù)庫工業(yè)和信息化人才培養(yǎng)工程系列叢書1+X證書制度試點(diǎn)培訓(xùn)用書第十七章01MySQL概述MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),而“PHP+MySQL”是目前流行的使用方法,當(dāng)然,PHP也支持其他的數(shù)據(jù)庫,如Mango、MangoDB、MicrosoftSQLServer、OracleOCI8、Sybase、PostgreSQL、Access、SQLite等。MySQL概述02配置MySQL配置成功的運(yùn)行結(jié)果如下圖所示。配置MySQL03訪問數(shù)據(jù)庫連接MySQL服務(wù)器通過PHP操作MySQL數(shù)據(jù)庫,要先建立與MySQL服務(wù)器的連接,使用mysqli_connect()函數(shù)可以達(dá)到此目的,它的語法格式如下:mysqlimysqliconnect([stringserver[,string
username[,
string
password[,stringdbname[,intport[,string socket]]]]]])訪問數(shù)據(jù)庫首先連接MySQL服務(wù)器,然后選擇MySQL數(shù)據(jù)庫,這兩步通常有3種寫法,而3種寫法的結(jié)果是一樣的,示例代碼如下:訪問數(shù)據(jù)庫選擇MySQL數(shù)據(jù)庫在完成數(shù)據(jù)庫訪問工作后,如果不再需要連接,則應(yīng)該及時(shí)釋放有關(guān)mysqli對(duì)象。雖然在執(zhí)行完成后系統(tǒng)會(huì)自動(dòng)關(guān)閉連接,進(jìn)行資源回收,但有時(shí)一個(gè)頁面可能需要使用多個(gè)數(shù)據(jù)庫連接,所以我們要保持一個(gè)良好的寫作習(xí)慣,適當(dāng)?shù)厥褂胢ysqli_close(函數(shù)來關(guān)閉與MySQL服務(wù)器的連接。關(guān)閉MySQL服務(wù)器訪問數(shù)據(jù)庫運(yùn)行結(jié)果如下圖所示。訪問數(shù)據(jù)庫執(zhí)行SQL語句04解析結(jié)果集值得注意的是,在使用完結(jié)果集內(nèi)容后,要使用函數(shù)或成員方法來釋放結(jié)果集占用的內(nèi)存,mysqli_result常用的函數(shù)或成員方法如下表所示。解析結(jié)果集05PDO概述PDO(PHPDataObject,PHP數(shù)據(jù)對(duì)象)是由MySQL宮方封裝的、基于面向?qū)ο缶幊趟枷氲?、使用C語言開發(fā)的數(shù)據(jù)庫抽象層。開發(fā)PDO的原因是大部分PHP開發(fā)者都習(xí)慣使用“PHP+MySQL”組合,導(dǎo)致PHP對(duì)其他數(shù)據(jù)庫的支持都或多或少地模仿MySQL的API,但是不同數(shù)據(jù)庫之間總會(huì)有一些不同,這就使得PHP在從一個(gè)數(shù)據(jù)庫擴(kuò)展到另一個(gè)數(shù)據(jù)庫時(shí)有很大的困難。PDO概述06配置PDO在最新版PHP中,PDO已經(jīng)默認(rèn)開啟,只需啟動(dòng)其他數(shù)據(jù)庫的擴(kuò)展即可。在PDO配置完成后,需要重啟Apache服務(wù),然后執(zhí)行phpinfo()函數(shù),看到如下圖所示的內(nèi)容則表示PDO配置成功。配置PDO07訪問數(shù)據(jù)庫連接服務(wù)器使用PDO與服務(wù)器建立連接,需要先使用構(gòu)造方法來創(chuàng)建PDO實(shí)例,PDO實(shí)例的構(gòu)造方法的語法格式如下:construct(string
data_source_name
string
user[,stringpwd[,array
driver_optionsj]j)訪問數(shù)據(jù)庫運(yùn)行結(jié)果如下圖所示。訪問數(shù)據(jù)庫關(guān)閉連接08執(zhí)行SQL語句運(yùn)行結(jié)果如下圖所示。執(zhí)行SQL語句exec()方法運(yùn)行結(jié)果如下圖所示。執(zhí)行SQL語句query()方法預(yù)處理語句是預(yù)先將一個(gè)預(yù)處理的 SQL語句發(fā)送到數(shù)據(jù)庫服務(wù)器,在執(zhí)行其他SQL語句時(shí)只是修改與預(yù)處理語句中對(duì)應(yīng)的參數(shù)。簡(jiǎn)單來說,就是將SQL語句強(qiáng)制一分為二:第一部分為前面相同的命令和結(jié)構(gòu)部分,第二部分為后面可變的數(shù)據(jù)部分。預(yù)處理語句執(zhí)行SQL語句09解析結(jié)果集運(yùn)行結(jié)果如下圖所示。解析結(jié)果集fetch()方法運(yùn)行結(jié)果如下圖所示。解析結(jié)果集fetchAll()方法運(yùn)行結(jié)果如下圖所示。解析結(jié)果集fetchColumn()方法10SQL注入SQL注入就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請(qǐng)求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令的目的。SQL注入通常由于在執(zhí)行SQL語句時(shí),沒有對(duì)用戶通過Web表單提交的參數(shù)或查詢的字符串進(jìn)行特殊字符過濾等,導(dǎo)致欺騙服務(wù)器執(zhí)行惡意SQL命令。SQL注入11本章小結(jié)本章主要介紹了使用mysqli擴(kuò)展操作MySQL數(shù)據(jù)庫的方法,需要掌握mysqli擴(kuò)展庫中的常用方法,包括連接服務(wù)器、選擇數(shù)據(jù)庫、執(zhí)行SQL語句、清空記錄集、關(guān)閉服務(wù)器等方法,同時(shí)也介紹了面向?qū)ο笤趍ysqli擴(kuò)展庫中的應(yīng)用。本章還重點(diǎn)介紹了PDO和處理語句,需要重點(diǎn)學(xué)習(xí)和使用預(yù)處理語句。本章小結(jié)Web前端開發(fā)(中級(jí))(上冊(cè))Laravel框架工業(yè)和信息化人才培養(yǎng)工程系列叢書1+X證書制度試點(diǎn)培訓(xùn)用書第十八章存儲(chǔ)過程與觸發(fā)器是數(shù)據(jù)庫系統(tǒng)中比較實(shí)用的兩個(gè)功能。本章首先介紹了存儲(chǔ)過程的創(chuàng)建和調(diào)用方法,然后詳細(xì)介紹了存儲(chǔ)過程中的各類參數(shù)、變量、運(yùn)算符、流程控制語句,以及函數(shù)的定義和使用方法。在介紹存儲(chǔ)過程的基礎(chǔ)上,又介紹了一種特殊的存儲(chǔ)過程觸發(fā)器(非主動(dòng)調(diào)用,根據(jù)條件被動(dòng)觸發(fā)),包括觸發(fā)器的創(chuàng)建、查看和刪除方法,以及觸發(fā)器的執(zhí)行順序。本章小結(jié)01Laravel定義框架是一個(gè)半成品,它已經(jīng)對(duì)基礎(chǔ)的代碼進(jìn)行了封裝并提供了相應(yīng)的API,開發(fā)者在使用框架時(shí)直接調(diào)用封裝好的API可以省去很多代碼編寫工作,從而提高工作效率和開發(fā)速度。Laravel是一套簡(jiǎn)潔、優(yōu)雅的PHPWeb開發(fā)框架。Laravel定義02安裝Laravel安裝Composer從https:///Composer-Setup.exe網(wǎng)址下載安裝程序,并單擊下載的安裝程序,會(huì)自動(dòng)安裝并配置好系統(tǒng)的環(huán)境變量,這樣是最簡(jiǎn)單的安裝方法。安裝Laravel在第一次使用Laravel安裝器時(shí),會(huì)下載安裝很多東西,需要耐心等待,在下載完成后,可以使用瀏覽器打開index.php文件,如果看到如下圖所示的畫面,則表示Laravel安裝成功了。安裝Laravel使用Laravel安裝器安裝Laravel應(yīng)用我們還可以在終端中通過Composer的create-project命令來安裝Laravel應(yīng)用,命令格式如下:composercreate-projectprefer-dist
laravel/laravelblog如果要指定Laravel的特定版本,則需要在命令后面連接版本信息,格式如下:composer
create-project prefer-distlaravel/laravel
blog5.7.*安裝Laravel配置Composer在實(shí)際使用中,由于在國內(nèi)使用Composer時(shí)經(jīng)常會(huì)感覺很慢,有時(shí)甚至?xí)?bào)錯(cuò),因此通常會(huì)使用其他的鏡像站來代替官方下載點(diǎn),這里推薦兩個(gè)鏡像站。安裝Laravel03Larave目錄結(jié)構(gòu)對(duì)于剛安裝好的Iaravel來說,其目錄結(jié)構(gòu)如下圖所示。Larave目錄結(jié)構(gòu)04路由在將URL添加進(jìn)去后,再次使用postman測(cè)試,此時(shí)發(fā)現(xiàn)返回成功,如下圖所示。路由注冊(cè)路由重定向路由如果要定義重定向到另一個(gè)URI的路由,則可以使用Route:redirect方法。這個(gè)方法可以快速地實(shí)現(xiàn)重定向,而不再需要去定義完整的路由或控制器,例如:Route:redirect(/here',/there');路由這里,會(huì)調(diào)用“resources\views\welcome.blade.php”這個(gè)文件,運(yùn)行結(jié)果如下圖所示。路由視圖路由在參數(shù)是jack,不符合正則條件時(shí),運(yùn)行結(jié)果如下圖所示。路由路由參數(shù)運(yùn)行結(jié)果如下圖所示。路由命名路由可以打開app\Providers\RouteServiceProvider.php文件查看在源代碼中是如何定義的,源代碼如下:路由路由分組當(dāng)向路由或控制器行為中注入模型ID時(shí),就需要查詢這個(gè)ID對(duì)應(yīng)的模型。Laravel為路由模型綁定提供了一個(gè)自動(dòng)將模型實(shí)例注入路由中的方法。例如,用戶可以注入與給定ID匹配的整個(gè)User模型實(shí)例,而不是僅僅注入用戶的ID。Laravel提供了隱式和顯式兩種綁定方式。路由模型綁定路由回退路由(兜底路由)使用Route:fallback方法可以定義在沒有其他路由匹配傳入請(qǐng)求時(shí)執(zhí)行的路由。通常未處理的請(qǐng)求會(huì)通過應(yīng)用程序的異常處理程序自動(dòng)呈現(xiàn)“404”頁面。但是可以在routes\web.php文件中定義fallback路由,Web中間件的所有中間件都會(huì)應(yīng)用到路由中。路由訪問控制Laravel包含了一個(gè)Route:middleware方法,用于控制應(yīng)用程序?qū)β酚傻脑L問。使用Route:middleware方法可以將throttle中間件分配給一個(gè)路由或一個(gè)路由組。throttle中間件會(huì)接收兩個(gè)參數(shù),這兩個(gè)參數(shù)決定了在給定的分鐘數(shù)內(nèi)可以進(jìn)行的最大請(qǐng)求數(shù)。路由使用RouteFacade上的Routexcurrent、Route:currentRouteName和Route:currentRoute
Action方法可以訪問處理當(dāng)前輸入請(qǐng)求的路由信息,代碼如下:路由訪問當(dāng)前路由05中間件中間件為過濾進(jìn)入應(yīng)用的HTTP請(qǐng)求提供了一套便利的機(jī)制。例如,Laravel內(nèi)置了一Laravel內(nèi)置了開箱即用的Web和API中間件組,其中包含可能應(yīng)用于Web
UI和API
路由的常用中間件,代碼保存在appHttpKernel.php文件中,代碼如下:中間件06控制器前文的演示示例都是將所有的請(qǐng)求處理邏輯放在路由文件的閉包函數(shù)中,這顯然是不合理的。一般需要使用控制器來組織管理相對(duì)復(fù)雜的業(yè)務(wù)邏輯??刂破饔糜趯⑾嚓P(guān)的HTTP請(qǐng)求封裝到一個(gè)類中進(jìn)行處理,這些控制器存放在app\Http\Controllers目錄下??刂破?7Blade模版Blade是Laravel提供的一個(gè)簡(jiǎn)單而又強(qiáng)大的模板引擎。和其他流行的PHP模板引擎不同,Blade并不限制用戶在視圖中使用原生PHP代碼。所有Blade視圖文件都會(huì)被編譯成原生的PHP代碼并緩存起來,除非它被修改,否則不會(huì)重新編譯,這就意味著Bladc基本上不會(huì)給用戶的應(yīng)用增加任何負(fù)擔(dān)。Blade模版08數(shù)據(jù)庫在配置好數(shù)據(jù)庫連接后,就可以使用DB類來運(yùn)行查詢。DB類為每種操作提供了相應(yīng)方法如DB:select、DB:update、DB:insert、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 制定個(gè)人發(fā)展計(jì)劃實(shí)現(xiàn)職業(yè)目標(biāo)
- 助力班級(jí)學(xué)習(xí)氛圍的提升計(jì)劃
- 房企建造的臨時(shí)售樓部的財(cái)稅處理-記賬實(shí)操
- 生產(chǎn)過程中的風(fēng)險(xiǎn)管理計(jì)劃
- 促進(jìn)社團(tuán)校企合作計(jì)劃
- 臨時(shí)性勞動(dòng)合同三篇
- 肝內(nèi)膽管細(xì)胞癌:病例討論(肝膽知識(shí))
- 體育教培合作協(xié)議書范文
- 新疆工廠勞務(wù)合作協(xié)議書范文
- 甲方合作工廠協(xié)議書范文模板
- 湘教版(2024新版)七年級(jí)上冊(cè)地理2.2《地球的運(yùn)動(dòng)》教案
- PANTONE國際色卡CMYK色值對(duì)照表3
- 人教版數(shù)學(xué)九年級(jí)上冊(cè)24.3.1《正多邊形和圓》說課稿
- 北京市智慧工地評(píng)價(jià)標(biāo)準(zhǔn)
- 2024年全國鄉(xiāng)村醫(yī)生考試復(fù)習(xí)題庫及答案(共420題)
- 2024國家統(tǒng)計(jì)局麗水調(diào)查隊(duì)招聘編外工作人員3人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- GB/T 44143-2024科技人才評(píng)價(jià)規(guī)范
- 2024年家政服務(wù)員職業(yè)技能競(jìng)賽理論考試題庫(含答案)
- NBT 47013.4-2015 承壓設(shè)備無損檢測(cè) 第4部分:磁粉檢測(cè)
- 專題03正比例函數(shù)和反比例函數(shù)(原卷版+解析)
- CTF信息安全競(jìng)賽理論知識(shí)考試題庫大全-下(多選、判斷題)
評(píng)論
0/150
提交評(píng)論