PHP操作MySQL數(shù)據(jù)庫(kù)課件_第1頁(yè)
PHP操作MySQL數(shù)據(jù)庫(kù)課件_第2頁(yè)
PHP操作MySQL數(shù)據(jù)庫(kù)課件_第3頁(yè)
PHP操作MySQL數(shù)據(jù)庫(kù)課件_第4頁(yè)
PHP操作MySQL數(shù)據(jù)庫(kù)課件_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第8章PHP操作MySQL數(shù)據(jù)庫(kù)MySQL的安裝與使用PHP訪問MySQL基本步驟MySQLi擴(kuò)展預(yù)處理與參數(shù)綁定第8章PHP操作MySQL數(shù)據(jù)庫(kù)MySQL的安裝與使用My目錄PHP訪問MySQL8.28.1MySQL的安裝和使用MySQLi擴(kuò)展的使用8.3預(yù)處理和參數(shù)綁定8.4目錄PHP訪問MySQL8.28.1MySQL的安裝和使用M8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)(Database)簡(jiǎn)稱DB,是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),其本身可看作電子化的文件柜,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行增加、刪除、修改、查找等操作。8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)(Databa8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是一種操作和管理數(shù)據(jù)庫(kù)的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫(kù),以及保證數(shù)據(jù)庫(kù)的安全性和完整性。8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)管理系統(tǒng)(Da8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述隨著數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)產(chǎn)品越來越多,常見的有Oracle、SQLServer、MySQL等,它們各自的特點(diǎn)如下所述。8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述隨著數(shù)據(jù)庫(kù)技術(shù)的不斷8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述Oracle數(shù)據(jù)庫(kù)是Oracle公司推出的數(shù)據(jù)庫(kù)管理系統(tǒng),在數(shù)據(jù)庫(kù)領(lǐng)域一直處于領(lǐng)先地位是目前世界上流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一優(yōu)勢(shì)在于移植性好、使用方便、功能性強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。對(duì)于要求高效率、吞吐量大的項(xiàng)目而言是一個(gè)不錯(cuò)的選擇。8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述Oracle數(shù)據(jù)庫(kù)8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述SQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)廣泛應(yīng)用于電子商務(wù)、銀行、保險(xiǎn)、電力等行業(yè)優(yōu)點(diǎn),易操作、界面良好等特點(diǎn)深受廣大用戶喜愛缺點(diǎn),只能在Windows平臺(tái)上運(yùn)行,并對(duì)操作系統(tǒng)的穩(wěn)定性要求較高8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述SQLServer8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述MySQL數(shù)據(jù)庫(kù)是開放源碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。由瑞典MySQLAB公司開發(fā),先后被Sun和Oracle公司收購(gòu)。是最受歡迎的關(guān)系型數(shù)據(jù)庫(kù)之一,尤其是在Web開發(fā)領(lǐng)域,MySQL依然占據(jù)著舉足輕重的地位。8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述MySQL數(shù)據(jù)庫(kù)8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述MySQL數(shù)據(jù)庫(kù)低成本:開源的,開發(fā)人員可根據(jù)需求自由進(jìn)行修改,降低了開發(fā)成本跨平臺(tái):可在Windows、Linux、MacOS等多達(dá)14種平臺(tái)上使用。高性能:多線程以及SQL算法的設(shè)計(jì),使其可充分利用CPU資源和提高查詢速度上手快:MySQL使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語言形式,方便用戶操作。API接口:提供多種編程語言的API,方便操作數(shù)據(jù)庫(kù)。例如Java、C、PHP等。8.1MySQL的安裝和使用數(shù)據(jù)庫(kù)概述MySQL數(shù)據(jù)庫(kù)8.1MySQL的安裝和使用獲取MySQL打開MySQL的官方網(wǎng)站“”獲取軟件的下載。在網(wǎng)站中找到“Downloads”下載頁(yè)面,可以看到MySQL各種版本的下載地址。8.1MySQL的安裝和使用獲取MySQL打開MySQL的8.1MySQL的安裝和使用獲取MySQLMySQL主要提供了企業(yè)版(Enterprise)和社區(qū)版(Community)產(chǎn)品社區(qū)版是通過GPL協(xié)議授權(quán)的開源軟件,可以免費(fèi)使用企業(yè)版是需要收費(fèi)的商業(yè)軟件8.1MySQL的安裝和使用獲取MySQLMySQL主要提8.1MySQL的安裝和使用獲取MySQL本書選擇MySQL社區(qū)版進(jìn)行講解,在下載頁(yè)面找到“MySQLCommunityServer”版本進(jìn)行下載。8.1MySQL的安裝和使用獲取MySQL本書選擇MySQ8.1MySQL的安裝和使用命令安裝方式——解壓文件創(chuàng)建“C:\web\mysql5.7”作為MySQL的安裝目錄打開“mysql-5.7.17-win32.zip”壓縮包,將里面的“mysql-5.7.17-win32”目錄中的文件解壓到“C:\web\mysql5.7”路徑下。8.1MySQL的安裝和使用命令安裝方式——解壓文件創(chuàng)建“8.1MySQL的安裝和使用命令安裝方式——解壓文件需要重點(diǎn)關(guān)注

“bin”目錄和“my-default.ini”文件。“bin”是MySQL的應(yīng)用程序目錄,保存了MySQL的服務(wù)程序“mysqld.exe”、命令行工具“mysql.exe”等“my-default.ini”是MySQL的默認(rèn)配置文件,用于保存默認(rèn)設(shè)置8.1MySQL的安裝和使用命令安裝方式——解壓文件需要重8.1MySQL的安裝和使用命令安裝方式——配置MySQL在安裝MySQL前,先進(jìn)行基本的配置。將默認(rèn)配置文件“my-default.ini”復(fù)制一份,命名為“my.ini”打開“my.ini”,找到如下配置項(xiàng)進(jìn)行修改:8.1MySQL的安裝和使用命令安裝方式——配置MySQL8.1MySQL的安裝和使用命令安裝方式——配置MySQLbasedir=C:/web/mysql5.7datadir=C:/web/mysql5.7/dataport=3306basedir表示MySQL的安裝目錄datadir表示數(shù)據(jù)庫(kù)文件的保存目錄port表示訪問MySQL服務(wù)的端口號(hào)MySQL數(shù)據(jù)庫(kù)的默認(rèn)端口號(hào)為33068.1MySQL的安裝和使用命令安裝方式——配置MySQL8.1MySQL的安裝和使用命令安裝方式——安裝MySQLMySQL安裝是指將MySQL安裝為Windows系統(tǒng)的服務(wù)項(xiàng),可以通過MySQL的服務(wù)程序“mysqld.exe”來進(jìn)行安裝,具體步驟如下:8.1MySQL的安裝和使用命令安裝方式——安裝MySQL8.1MySQL的安裝和使用命令安裝方式——安裝MySQL①執(zhí)行【開始】菜單-【所有程序】-【附件】,找到【命令提示符】并單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇【以管理員身份運(yùn)行】方式,啟動(dòng)命令行窗口。②在命令模式下,切換到MySQL安裝目錄下的bin目錄。cdC:\web\mysql5.7\bin8.1MySQL的安裝和使用命令安裝方式——安裝MySQL8.1MySQL的安裝和使用命令安裝方式——安裝MySQL③輸入以下命令開始安裝。mysqld.exe-install默認(rèn)情況下,MySQL將自動(dòng)讀取安裝目錄下的“my.ini”配置文件。值得一提的是,如果需要卸載MySQL服務(wù),可以使用“mysqld.exe-remove”命令進(jìn)行卸載。8.1MySQL的安裝和使用命令安裝方式——安裝MySQL8.1MySQL的安裝和使用命令安裝方式——啟動(dòng)MySQL服務(wù)(1)初始化數(shù)據(jù)庫(kù)在安裝MySQL后,數(shù)據(jù)文件目錄“c:\web\mysql5.7\data”還沒有創(chuàng)建。因此,接下來要通過MySQL的初始化功能,自動(dòng)創(chuàng)建數(shù)據(jù)文件目錄。具體命令如下:mysqld.exe--initialize-insecure“--initialize”表示初始化數(shù)據(jù)庫(kù)“-insecure”表示忽略安全性。當(dāng)省略“-insecure”時(shí),MySQL將自動(dòng)為默認(rèn)用戶“root”生成一個(gè)隨機(jī)的復(fù)雜密碼,而加上時(shí),“root”用戶的密碼為空。8.1MySQL的安裝和使用命令安裝方式——啟動(dòng)MySQL8.1MySQL的安裝和使用命令安裝方式——啟動(dòng)MySQL服務(wù)(2)管理MySQL服務(wù)MySQL安裝后,就可以作為Windows的服務(wù)項(xiàng)進(jìn)行啟動(dòng)或關(guān)閉了,通過Windows的系統(tǒng)的【控制面板】-【管理工具】-【服務(wù)】對(duì)MySQL服務(wù)進(jìn)行管理,也可以使用如下命令實(shí)現(xiàn)。8.1MySQL的安裝和使用命令安裝方式——啟動(dòng)MySQL8.1MySQL的安裝和使用命令安裝方式——啟動(dòng)MySQL服務(wù)(2)管理MySQL服務(wù)netstartMySQL #啟動(dòng)“MySQL”服務(wù)netstopMySQL #停止“MySQL”服務(wù)netrestartMySQL#重新啟動(dòng)“MySQL”服務(wù)8.1MySQL的安裝和使用命令安裝方式——啟動(dòng)MySQL8.1MySQL的安裝和使用MySQL命令行工具——MySQL登錄與密碼設(shè)置無密碼登錄8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL登錄與密碼設(shè)置“-hlocalhost”表示登錄的服務(wù)器主機(jī)地址為localhost(本地服務(wù)器),可換成服務(wù)器的IP地址,如,也可以省略,MySQL在默認(rèn)情況下會(huì)自動(dòng)訪問本地服務(wù)器“-uroot”表示以“root”用戶的身份登錄退出MySQL可以直接使用“exit”或“quit”命令退出登錄8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL登錄與密碼設(shè)置為了保護(hù)數(shù)據(jù)庫(kù)的安全,需要為登錄MySQL服務(wù)器的用戶需要設(shè)置密碼。下面以設(shè)置root用戶的密碼為例,具體執(zhí)行的命令如下。SETPASSWORDFOR'root'@'localhost'=PASSWORD('123456');“l(fā)ocalhost”主機(jī)中的“root”用戶設(shè)置密碼,密碼為“123456”。當(dāng)設(shè)置密碼后,退出MySQL,然后重新登錄時(shí),就需要輸入剛才設(shè)置的密碼。8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL登錄與密碼設(shè)置在登錄有密碼的用戶時(shí),需要使用的命令如下。mysql–hlocalhost-uroot-p123456“-p123456”表示使用密碼“123456”進(jìn)行登錄。如果在登錄時(shí)不希望被直接看到密碼,可以省略“-p”后面的密碼,然后按回車鍵,MySQL會(huì)提示輸入密碼,并且在輸入時(shí)不會(huì)回顯。有密碼登錄8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(1)數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)的管理主要包括查看數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù)。功能示例描述查看數(shù)據(jù)庫(kù)SHOWDATABASES;顯示MySQL數(shù)據(jù)庫(kù)服務(wù)器中已有的數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE`itheima`;創(chuàng)建一個(gè)名稱為itheima的數(shù)據(jù)庫(kù)選擇數(shù)據(jù)庫(kù)USE`itheima`;選擇數(shù)據(jù)庫(kù)itheima進(jìn)行操作刪除數(shù)據(jù)庫(kù)DROPDATABASE`itheima`;刪除數(shù)據(jù)庫(kù)itheima8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(1)數(shù)據(jù)庫(kù)管理在創(chuàng)建和刪除指定數(shù)據(jù)庫(kù)時(shí),為了防止創(chuàng)建的數(shù)據(jù)庫(kù)已存在或刪除的數(shù)據(jù)庫(kù)不存在,導(dǎo)致程序報(bào)錯(cuò),可以在操作的數(shù)據(jù)庫(kù)名稱前添加“IFNOTEXISTS”或“IFEXISTS”。CREATEDATABASEIFNOTEXISTS`itheima`;DROPDATABASEIFEXISTS`itheima`;8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(2)創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表是數(shù)據(jù)庫(kù)中最基本的數(shù)據(jù)對(duì)象,用于存放數(shù)據(jù)。要選擇數(shù)據(jù)庫(kù),確定是在哪個(gè)數(shù)據(jù)庫(kù)中創(chuàng)建的數(shù)據(jù)表要根據(jù)項(xiàng)目需求創(chuàng)建數(shù)據(jù)表才能對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行具體操作8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(2)創(chuàng)建數(shù)據(jù)表CREATEDATABASEIFNOTEXISTS`itheima`;USE`itheima`;創(chuàng)建并選擇數(shù)據(jù)庫(kù)8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(2)創(chuàng)建數(shù)據(jù)表CREATETABLEIFNOTEXISTS`student`(`id`INTUNSIGNEDPRIMARYKEYAUTO_INCREMENTCOMMENT'學(xué)號(hào)',`name`VARCHAR(32)NOTNULLCOMMENT'姓名',`gender`ENUM('男','女')DEFAULT'男'NOTNULLCOMMENT'性別')DEFAULTCHARSET=utf8;創(chuàng)建學(xué)生信息表8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用功能示例INT常規(guī)整數(shù),有符號(hào)取值范圍:-231~231-1,無符號(hào)取值范圍:0~232-1VARCHAR(32)用于表示可變長(zhǎng)度的字符串,最多保存32個(gè)字符ENUM('男','女')枚舉類型,其值只能男或女UNSIGNED用于設(shè)置字段數(shù)據(jù)類型是無符號(hào)的PRIMARYKEY用于設(shè)置主鍵,唯一標(biāo)識(shí)表中的某一條記錄AUTO_INCREMENT用于表示自動(dòng)增長(zhǎng),每增加一條記錄,該字段會(huì)自動(dòng)加1NOTNULL表示該字段不允許出現(xiàn)NULL值DEFAULT用于設(shè)置字段的默認(rèn)值DEFAULTCHARSET=utf8用于設(shè)置該表的默認(rèn)字符編碼為“utf8”COMMENT用于表示注釋內(nèi)容8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(3)數(shù)據(jù)表的管理對(duì)于已建數(shù)據(jù)表,可以查看表結(jié)構(gòu)、修改表結(jié)構(gòu),或者刪除不需要的數(shù)據(jù)表。8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用功能示例描述查看數(shù)據(jù)表SHOWTABLES;查看數(shù)據(jù)庫(kù)中已有的表查看表結(jié)構(gòu)DESC`student`;查看指定表的字段信息DESC`student``name`;查看指定表的某一列信息SHOWCREATETABLE`student`\G查看數(shù)據(jù)表創(chuàng)建語句和字符編碼SHOWCOLUMNSFROM`student`;查看表的結(jié)構(gòu)修改表結(jié)構(gòu)ALTERTABLE`student`ADD`area`VARCHAR(100);添加字段8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用功能示例描述修改表結(jié)構(gòu)ALTERTABLE`student`CHANGE`area``desc`CHAR(50);修改字段名稱ALTERTABLE`student`MODIFY`desc`VARCHAR(255);修改字段類型ALTERTABLE`student`DROP`desc`;刪除指定字段ALTERTABLE`student`RENAME`stu`;修改數(shù)據(jù)表名稱重命名RENAMETABLE`stu`TO`student`;將名字為stu的表重命名為student刪除數(shù)據(jù)表DROPTABLEIFEXISTS`student`;刪除存在的數(shù)據(jù)表student8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(4)數(shù)據(jù)管理——添加數(shù)據(jù)#指定字段插入INSERTINTO`student`(`name`,`gender`)VALUES('Tom','男'),('Lucy','女'),('Jimmy','男'),('Amy','女');#省略字段插入INSERTINTO`student`VALUES(NULL,'Elma','女'),(NULL,'Ruth','女');8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(4)數(shù)據(jù)管理——查詢數(shù)據(jù)SELECT*FROM`student`; #查詢表中所有數(shù)據(jù)SELECT`name`FROM`student`; #查詢表中指定字段SELECT*FROM`student`WHERE`id`=2; #查詢id等于2的學(xué)生信息SELECT*FROM`student`WHERE`id`IN(4,5); #查詢id為4或5的學(xué)生信息SELECT*FROM`student`WHERENAMELIKE'%y'; #查詢名字以y結(jié)尾的學(xué)生信息SELECT*FROM`student`ORDERBY`name`ASC; #將查詢結(jié)果按照名字升序排序SELECT*FROM`student`LIMIT1,2; #查詢結(jié)果從第2個(gè)開始,至多有2個(gè)SELECT`gender`,COUNT(*)FROM`student`GROUPBY`gender`;#按性別查詢男女各有多少人8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(4)數(shù)據(jù)管理——查詢數(shù)據(jù)FROM用于指定待查詢的數(shù)據(jù)表WHERE用于指定查詢條件IN關(guān)鍵字用于判斷某個(gè)字段的值是否在指定集合中LIKE用于模糊查詢,“%”表示一個(gè)或多個(gè)字符ORDERBY用于將查詢結(jié)果按照指定字段進(jìn)行排序,ASC表示升序,DESC表示降序LIMIT用于限定查詢結(jié)果GROUPBY用于按照指定字段進(jìn)行分組查詢8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(4)數(shù)據(jù)管理——修改數(shù)據(jù)例如,將學(xué)生信息表中學(xué)號(hào)為6的學(xué)生改名為TessUPDATE`student`SET`name`='Tess'WHERE`id`=6; #有條件修改UPDATE`student`SET`name`='Tess'; #無條件修改8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(4)數(shù)據(jù)管理——?jiǎng)h除數(shù)據(jù)在數(shù)據(jù)庫(kù)中,若有些數(shù)據(jù)已經(jīng)失去意義或者錯(cuò)誤時(shí),就需要將它們刪除。DELETEFROM`student`WHERE`gender`='女'; #刪除部分?jǐn)?shù)據(jù)DELETEFROM`student`; #刪除全部數(shù)據(jù)TRUNCATE`student`; #清空數(shù)據(jù)表8.1MySQL的安裝和使用MySQL命令行工具——MyS8.1MySQL的安裝和使用MySQL命令行工具——MySQL的基本使用(4)數(shù)據(jù)管理——?jiǎng)h除數(shù)據(jù)DELETE和TRUNCATE的區(qū)別前者可以加上WHERE子句,只刪除滿足條件的部分記錄,再次向表中添加記錄時(shí),不影響自動(dòng)增長(zhǎng)值;后者只能用于清空表中的所有記錄,且再次向表中添加記錄時(shí),自動(dòng)增加字段的默認(rèn)初始值將重新由1開始。8.1MySQL的安裝和使用MySQL命令行工具——MyS8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展PHP作為一門編程語言,其本身并不具備操作數(shù)據(jù)庫(kù)的功能。因此,若想要在項(xiàng)目開發(fā)中,完成PHP應(yīng)用和MySQL數(shù)據(jù)庫(kù)之間的交互,則需借助PHP提供的數(shù)據(jù)庫(kù)擴(kuò)展。MySQL擴(kuò)展MySQLi擴(kuò)展PDO擴(kuò)展8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展PHP作為一門編8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——MySQL擴(kuò)展是針對(duì)MySQL4.1.3或更早版本設(shè)計(jì)的PHP與MySQL數(shù)據(jù)庫(kù)交互的早期擴(kuò)展由于其不支持MySQL數(shù)據(jù)庫(kù)服務(wù)器的新特性,且安全性差并且在PHP7中,已經(jīng)徹底淘汰了MySQL擴(kuò)展8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——MySQL擴(kuò)8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——MySQLi擴(kuò)展MySQLi擴(kuò)展是MySQL擴(kuò)展的增強(qiáng)版不僅包含所有MySQL擴(kuò)展的功能函數(shù),還可使用MySQL新版本中的高級(jí)特性例如,多語句執(zhí)行和事務(wù)的支持,預(yù)處理方式解決了SQL注入問題等。只支持MySQL數(shù)據(jù)庫(kù),如果不考慮其他數(shù)據(jù)庫(kù),該擴(kuò)展是一個(gè)非常好的選擇8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——MySQLi8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——MySQLi擴(kuò)展雖然MySQLi擴(kuò)展默認(rèn)情況下已經(jīng)安裝,但使用時(shí)還需要開啟。打開PHP的配置文件php.ini,找到如下一行配置取消注釋,然后重新啟動(dòng)Apache服務(wù)使配置生效。;extension=php_mysqli.dllphpinfo()8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——MySQLi8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——PDO擴(kuò)展PDO是PHPDataObjects(PHP數(shù)據(jù)對(duì)象)的簡(jiǎn)稱它提供了一個(gè)統(tǒng)一的API接口,只要修改其中的DSN(數(shù)據(jù)源),就可以實(shí)現(xiàn)PHP應(yīng)用與不同類型數(shù)據(jù)庫(kù)服務(wù)器之間的交互解決了早期PHP版本中,不同數(shù)據(jù)庫(kù)擴(kuò)展的應(yīng)用程序接口互不兼容的特點(diǎn),提高了程序的可維護(hù)性和可移植性8.2PHP訪問MySQLPHP的相關(guān)擴(kuò)展——PDO擴(kuò)展P8.2PHP訪問MySQLPHP訪問MySQL的基本步驟提問:通過前面的學(xué)習(xí),要實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)的操作需要有哪幾個(gè)步驟?答案:①首先需要啟動(dòng)MySQL數(shù)據(jù)庫(kù)服務(wù)器,輸入用戶名和密碼;②然后選擇要操作的數(shù)據(jù)庫(kù),執(zhí)行具體SQL語句,獲取到結(jié)果。思考:在PHP應(yīng)用中,要想完成與MySQL服務(wù)器的交互,需要哪些步驟呢?8.2PHP訪問MySQLPHP訪問MySQL的基本步驟提8.2PHP訪問MySQLPHP訪問MySQL的基本步驟8.2PHP訪問MySQLPHP訪問MySQL的基本步驟8.3MySQLi擴(kuò)展的使用連接數(shù)據(jù)庫(kù)MySQLi擴(kuò)展為PHP與數(shù)據(jù)庫(kù)的連接提供了mysqli_connect()函數(shù)mysqlimysqli_connect(string$host=ini_get('mysqli.default_host'), //主機(jī)名或IPstring$username=ini_get('mysqli.default_user'),//用戶名string$passwd=ini_get('mysqli.default_pw'), //密碼string$dbname='', //數(shù)據(jù)庫(kù)名int$port=ini_get('mysqli.default_port'), //端口號(hào)string$socket=ini_get('mysqli.default_socket')//socket通信)8.3MySQLi擴(kuò)展的使用連接數(shù)據(jù)庫(kù)MySQLi擴(kuò)展為P8.3MySQLi擴(kuò)展的使用連接數(shù)據(jù)庫(kù)函數(shù)共有6個(gè)可選參數(shù),省略時(shí)將自動(dòng)使用php.ini中配置的默認(rèn)值連接成功時(shí),該函數(shù)返回一個(gè)表示數(shù)據(jù)庫(kù)連接的對(duì)象連接失敗時(shí),函數(shù)返回false,并提示W(wǎng)arning級(jí)錯(cuò)誤信息參數(shù)$socket表示mysql.sock文件路徑(用于Linux環(huán)境),通常不需要手動(dòng)設(shè)置具體案例請(qǐng)參考教材8.3MySQLi擴(kuò)展的使用連接數(shù)據(jù)庫(kù)函數(shù)共有6個(gè)可選參數(shù)8.3MySQLi擴(kuò)展的使用執(zhí)行SQL語句在MySQLi擴(kuò)展中,通常使用mysqli_query()函數(shù)發(fā)送SQL語句,獲取執(zhí)行結(jié)果。mixedmysqli_query(mysqli$link, //數(shù)據(jù)庫(kù)連接string$query, //SQL語句int$resultmode=MYSQLI_STORE_RESULT //結(jié)果集模式(可選))$link表示通過mysqli_connect()函數(shù)獲取的數(shù)據(jù)庫(kù)連接$query表示SQL語句8.3MySQLi擴(kuò)展的使用執(zhí)行SQL語句在MySQLi擴(kuò)8.3MySQLi擴(kuò)展的使用執(zhí)行SQL語句執(zhí)行SELECT、SHOW、DESCRIBE或EXPLAIN查詢時(shí),返回值是查詢結(jié)果集,而執(zhí)行其他查詢,執(zhí)行成功返回true,否則返回false。此外,可選參數(shù)$resultmode表示結(jié)果集模式,其值可以是以下兩種常量。MYSQLI_STORE_RESULT模式:會(huì)將結(jié)果集全部讀取到PHP端MYSQLI_USE_RESULT模式:僅初始化結(jié)果集檢索,在處理結(jié)果集時(shí)進(jìn)行數(shù)據(jù)讀取。具體案例請(qǐng)參考教材8.3MySQLi擴(kuò)展的使用執(zhí)行SQL語句執(zhí)行SELECT8.3MySQLi擴(kuò)展的使用處理結(jié)果集函數(shù)mysqli_query()在執(zhí)行SELECT、SHOW、EXPLAIN或DESCRIBE的SQL語句后,返回的是一個(gè)資源類型的結(jié)果集。因此,需使用函數(shù)從結(jié)果集中獲取信息。8.3MySQLi擴(kuò)展的使用處理結(jié)果集函數(shù)mysqli_q8.3MySQLi擴(kuò)展的使用處理結(jié)果集函數(shù)名描述mysqli_num_rows()獲取結(jié)果中行的數(shù)量mysqli_fetch_all()獲取所有的結(jié)果,并以數(shù)組方式返回mysqli_fetch_array()獲取一行結(jié)果,并以數(shù)組方式返回mysqli_fetch_assoc()獲取一行結(jié)果并以關(guān)聯(lián)數(shù)組返回mysqli_fetch_row()獲取一行結(jié)果并以索引數(shù)組返回函數(shù)mysqli_fetch_all()和mysqli_fetch_array()的返回值,都支持關(guān)聯(lián)數(shù)組和索引數(shù)組兩種形式第1個(gè)參數(shù)表示結(jié)果集第2個(gè)參數(shù)是可選參數(shù),用于設(shè)置返回的數(shù)組形式,其值是一個(gè)常量8.3MySQLi擴(kuò)展的使用處理結(jié)果集函數(shù)名描述mysql8.3MySQLi擴(kuò)展的使用處理結(jié)果集函數(shù)mysqli_fetch_all()和mysqli_fetch_array()的返回常量。MYSQLI_ASSOC:表示返回的結(jié)果是一個(gè)關(guān)聯(lián)數(shù)組MYSQLI_NUM:表示返回的結(jié)果是一個(gè)索引數(shù)組MYSQLI_BOTH:表示返回的結(jié)果中包含關(guān)聯(lián)和索引數(shù)組,該常量為默認(rèn)值具體案例請(qǐng)參考教材8.3MySQLi擴(kuò)展的使用處理結(jié)果集函數(shù)mysqli_f8.3MySQLi擴(kuò)展的使用其他操作函數(shù)MySQLi擴(kuò)展不僅為PHP連接數(shù)據(jù)庫(kù)、執(zhí)行SQL語句提供了函數(shù),還為方便開發(fā)提供很多其他常用的操作函數(shù)。例如,獲取插入操作時(shí)產(chǎn)生的ID號(hào)、SQL語句中特殊字符的轉(zhuǎn)義等。8.3MySQLi擴(kuò)展的使用其他操作函數(shù)MySQLi擴(kuò)展不8.3MySQLi擴(kuò)展的使用其他操作函數(shù)函數(shù)名描述mysqli_insert_id()獲取上一次插入操作時(shí)產(chǎn)生的ID號(hào)mysqli_affected_rows()獲取上一次操作時(shí)受影響的行數(shù)mysqli_real_escape_string()用于轉(zhuǎn)義SQL語句字符串中的特殊字符mysqli_error()返回最近函數(shù)調(diào)用的錯(cuò)誤代碼mysqli_free_result()釋放結(jié)果集mysqli_close()關(guān)閉數(shù)據(jù)庫(kù)連接mysqli_free_result()函數(shù)用于釋放結(jié)果集占用的系統(tǒng)內(nèi)存資源mysqli_close()函數(shù)用于釋放打開的數(shù)據(jù)庫(kù)連接具體案例請(qǐng)參考教材8.3MySQLi擴(kuò)展的使用其他操作函數(shù)函數(shù)名描述mysq8.4預(yù)處理和參數(shù)綁定什么是預(yù)處理PHP執(zhí)行SQL傳統(tǒng)方式是將發(fā)送的數(shù)據(jù)和SQL寫在一起,這種方式每條SQL都需要經(jīng)過分析、編譯和優(yōu)化的周期;預(yù)處理方式則是預(yù)先編譯一次用戶提交的SQL模板,在操作時(shí),發(fā)送相關(guān)數(shù)據(jù)即可完成更新操作,這極大地提高了運(yùn)行效率,而且無需考慮數(shù)據(jù)中包含特殊字符(如單引號(hào))導(dǎo)致的語法問題。8.4預(yù)處理和參數(shù)綁定什么是預(yù)處理PHP執(zhí)行SQL8.4預(yù)處理和參數(shù)綁定什么是預(yù)處理實(shí)現(xiàn)SQL語句的預(yù)處理首先需要預(yù)處理一個(gè)待執(zhí)行的SQL語句模板然后為該模板進(jìn)行參數(shù)綁定最后將用戶提交的數(shù)據(jù)內(nèi)容發(fā)送給MySQL執(zhí)行,完成預(yù)處理的執(zhí)行8.4預(yù)處理和參數(shù)綁定什么是預(yù)處理實(shí)現(xiàn)SQL語句的預(yù)處理8.4預(yù)處理和參數(shù)綁定預(yù)處理的實(shí)現(xiàn)——預(yù)處理SQL模板mysqi_prepare()函數(shù)用于預(yù)處理一個(gè)待執(zhí)行的SQL語句mysqli_stmtmysqli_prepare(mysqli$link,string$query)參數(shù)$link表示數(shù)據(jù)庫(kù)連接$query表示SQL語句模板當(dāng)函數(shù)執(zhí)行后,成功時(shí)返回預(yù)處理對(duì)象,失敗時(shí)返回false。8.4預(yù)處理和參數(shù)綁定預(yù)處理的實(shí)現(xiàn)——預(yù)處理SQL模板my8.4預(yù)處理和參數(shù)綁定預(yù)處理的實(shí)現(xiàn)——預(yù)處理SQL模板在編寫SQL語句模板時(shí),其語法是將數(shù)據(jù)部分使用“?”占位符代替。#SQL正常語法UPDATE`student`SET`name`='Ileana'WHERE`id`=1;#SQL模板語法UPDATE`student`SET`name`=?WHERE`id`=?;SQL語句模板語法,對(duì)于字符串內(nèi)容,“?”占位符的兩邊無需使用引號(hào)包裹。8.4預(yù)處理和參數(shù)綁定預(yù)處理的實(shí)現(xiàn)——預(yù)處理SQL模板在編8.4預(yù)處理和參數(shù)綁定預(yù)處理的實(shí)現(xiàn)——模板的參數(shù)綁定mysqli_stmt_bind_param()函數(shù)用于將變

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論