《PHP+MySQL動態網站開發》課件 第9章 使用PHP操作MySQL_第1頁
《PHP+MySQL動態網站開發》課件 第9章 使用PHP操作MySQL_第2頁
《PHP+MySQL動態網站開發》課件 第9章 使用PHP操作MySQL_第3頁
《PHP+MySQL動態網站開發》課件 第9章 使用PHP操作MySQL_第4頁
《PHP+MySQL動態網站開發》課件 第9章 使用PHP操作MySQL_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第9章使用PHP操作MySQL《PHP+MySQL動態網站開發》學習目標/Target

了解PHP中的數據庫擴展,能夠說出常用的數據庫擴展。

掌握MySQLi擴展的使用方法,能夠使用MySQLi擴展操作數據庫。

掌握新聞管理系統的實現,能夠根據需求實現功能。章節概述/Summary在學習了MySQL的基礎知識后,讀者還要學習如何使用PHP操作MySQL。本章將對使用PHP操作MySQL的相關內容進行詳細講解。目錄/Contents9.19.29.3PHP中常用的數據庫擴展初識MySQLi擴展使用MySQLi擴展操作數據庫9.4項目實戰——新聞管理系統PHP中常用的數據庫擴展9.1

先定一個小目標!了解PHP中的數據庫擴展,能夠說出常用的數據庫擴展。9.1PHP中常用的數據庫擴展MySQLi擴展是PHP中專門用于與MySQL數據庫進行交互的擴展,它是PHP早期版本中的MySQL擴展的增強版,不僅包含所有MySQL擴展的功能函數,還可以使用MySQL新版本中的高級特性,例如,多語言執行和事務的執行,采用預處理方式解決SQL注入問題等。MySQLi擴展PDO擴展PDO提供了一個統一的API,只要修改其中的數據源名稱,就可以實現PHP與不同類型數據庫服務器之間的交互。PDO擴展解決了PHP早期版本中不同數據庫擴展的API互不兼容的問題,提高了程序的可維護性和可移植性。9.1PHP中常用的數據庫擴展如果想要使用PHP操作數據庫,就需要借助PHP中的數據庫擴展。初識MySQLi擴展9.2

先定一個小目標!熟悉MySQLi擴展的開啟,能夠在配置文件中開啟MySQLi擴展。9.2.1開啟MySQLi擴展在php.ini中找到“;extension=mysqli”配置項,刪除前面的分號“;”即可開啟MySQLi擴展。修改后的配置代碼如下:extension=mysqli9.2.1開啟MySQLi擴展

先定一個小目標!熟悉MySQLi擴展的常用函數,能夠說出MySQLi擴展的常用函數。9.2.2MySQLi擴展的常用函數MySQLi擴展內置了用于實現連接數據庫、設置客戶端字符集等功能的函數。MySQLi擴展的常用函數:函數描述mysqli_connect(string$hostname,string$username,string$password,string$database,int$port,string$socket)連接數據庫,連接成功返回數據庫連接對象,連接失敗返回falsemysqli_connect_error()獲取連接時的錯誤信息,返回帶有錯誤描述的字符串mysqli_select_db(mysqli$mysql,string$database)選擇數據庫,若成功返回true,失敗返回falsemysqli_set_charset(mysqli$mysql,string$charset)設置客戶端字符集,若成功返回true,失敗返回falsemysqli_query(mysqli$mysql,string$query)執行數據庫查詢,寫操作返回true,讀操作返回結果集對象,失敗返回falsemysqli_insert_id(mysqli$mysql)獲取上一次插入操作產生的idmysqli_affected_rows(mysqli$mysql)獲取執行SQL語句所影響的行數mysqli_num_rows(mysqli_result$result)獲取結果集中的行數1/29.2.2MySQLi擴展的常用函數函數描述mysqli_fetch_assoc(mysqli_result$result)獲取一行結果并以關聯數組方式返回mysqli_fetch_row(mysqli_result$result)獲取一行結果并以索引數組方式返回mysqli_fetch_all(mysqli_result$result,int$mode)獲取所有的結果,并以數組方式返回mysqli_fetch_array(mysqli_result$result,int$mode)從結果集中獲取一行結果作為索引數組或關聯數組mysqli_free_result(mysqli_result$result)釋放結果集mysqli_errno(mysqli$mysql)返回最近函數的錯誤編號mysqli_error(mysqli$mysql)返回最近函數的錯誤信息mysqli_report(int$flags)開啟或禁用MySQL內部錯誤報告mysqli_close(mysqli$mysql)關閉數據庫連接2/29.2.2MySQLi擴展的常用函數使用MySQLi擴展操作數據庫9.3

先定一個小目標!掌握連接數據庫的語法,能夠在程序中連接數據庫。9.3.1連接數據庫使用MySQLi擴展操作數據庫之前,需要連接數據庫。使用mysqli_connect()函數連接數據庫的語法格式:語法格式mysqli_connect(string$hostname,//主機名或IP地址string$username,//用戶名string$password,//密碼string$dbname, //數據庫名稱int$port, //端口號stringsocket

//socket通信(適用于Linux環境))9.3.1連接數據庫創建connect.php,使用mysqli_connect()函數連接數據庫:<?php//連接數據庫$link=mysqli_connect('localhost','root','123456','mydb','3306');//查看連接結果echo$link?'數據庫連接成功':'數據庫連接失敗';9.3.1連接數據庫如果將函數的密碼參數修改為“123”,此時的密碼是錯誤的,數據庫會連接失敗,提示信息:9.3.1連接數據庫

先定一個小目標!掌握錯誤處理的語法,能夠處理連接數據庫出現的錯誤。9.3.2錯誤處理數據庫連接失敗返回的錯誤信息可讀性比較差,為此,可使用mysqli_connect_error()函數獲取連接時的錯誤提示信息。在connect.php使用mysqli_connect_error()函數獲取錯誤信息:9.3.2錯誤處理<?php//禁用MySQL內部錯誤報告mysqli_report(MYSQLI_REPORT_OFF);//連接數據庫$link=@mysqli_connect('localhost','root','123','mydb');//輸出連接失敗時的錯誤信息if(!$link){exit('mysqliconnectionerror:'.mysqli_connect_error());}

先定一個小目標!掌握設置字符集的語法,能夠在程序中設置字符集。9.3.3設置字符集數據庫連接成功后,還需要設置字符集,以確保PHP與MySQL使用相同的字符集。使用mysqli_set_charset()函數設置字符集:9.3.3設置字符集語法格式mysqli_set_charset(mysqli$mysql,string$charset)$mysql表示數據庫連接對象,$charset是要設置的字符集,設置成功返回true,設置失敗返回false。在connect.php中使用mysqli_set_charset()函數設置字符集:if(!mysqli_set_charset($link,'utf8mb4')){exit(mysqli_error($link));}9.3.3設置字符集注意:為了避免中文亂碼問題,需要保證PHP腳本文件、Web服務器返回的編碼、網頁的<meta>標簽、PHP訪問MySQL使用的字符集是統一的。9.3.3設置字符集

先定一個小目標!掌握添加、更新和刪除數據,能夠在程序中實現添加、更新和刪除數據。9.3.4添加、更新和刪除數據MySQLi擴展提供了mysqli_query()函數來執行SQL語句:語法格式mysqli_query(mysqli$mysql,string$query,)$mysql表示數據庫連接對象;$query表示要執行的SQL語句。執行寫操作成功返回true,失敗返回false,執行讀操作返回值是結果集對象。9.3.4添加、更新和刪除數據1.添加數據在connect.php中實現添加數據操作://添加數據的SQL語句$query='INSERTINTOstudentVALUES(NULL,\'Bob\',20)';//執行添加數據操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}echo'添加數據的id值:'.mysqli_insert_id($link);//獲取添加數據的自增id9.3.4添加、更新和刪除數據2.更新數據在connect.php中實現更新數據操作://更新數據的SQL語句$query='UPDATEstudentSETage=21WHEREid=5';//執行更新數據操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}//返回結果echomysqli_affected_rows($link);9.3.4添加、更新和刪除數據3.刪除數據在connect.php中實現刪除數據://刪除數據的SQL語句$query='DELETEFROMstudentWHEREid>4';//執行刪除數據操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}//返回結果echomysqli_affected_rows($link);9.3.4添加、更新和刪除數據

先定一個小目標!掌握查詢數據,能夠處理查詢的結果集。9.3.5查詢數據使用mysqli_query()函數執行讀操作時,返回值是結果集對象,需要對結果集做進一步處理,獲取結果集中的數據。使用mysqli_fetch_assoc()函數、mysqli_fetch_row()函數和mysqli_fetch_array()函數都可以實現獲取結果集中的一行結果的操作。9.3.5查詢數據在connect.php中使用mysqli_fetch_assoc()函數查詢student數據表中的所有數據://查詢數據的SQL語句$query='SELECT*FROMstudent';//執行查詢數據操作$result=mysqli_query($link,$query);if(!$result){exit(mysqli_error($link));}//處理結果集$lists=[];while($row=mysqli_fetch_assoc($result)){$lists[]=$row;}mysqli_free_result($result);//釋放結果集資源9.3.5查詢數據將查詢出來的結果展示在頁面中:echo'<table><tr><th>id</th><th>姓名</th><th>年齡</th></tr>';foreach($listsas$val){echo"<tr><td>{$val['id']}</td><td>{$val['name']}</td><td>{$val['age']}</td></tr>";}echo'</table>';9.3.5查詢數據如果想要獲取所有的結果,通過mysqli_fetch_all()函數實現://獲取所有的結果$data=mysqli_fetch_all($result,MYSQLI_ASSOC);//輸出結果var_dump($data);9.3.5查詢數據$data中存入了一個包含所有行的二維數組,其中每一行記錄都是一個數字

先定一個小目標!掌握關閉數據庫連接的語法,能夠在程序中實現關閉數據庫連接。9.3.6關閉數據庫連接當不需要使用數據庫連接時,需要關閉數據庫連接。9.3.6關閉數據庫連接語法格式mysqli_close(mysqli$mysql)使用mysqli_close()函數關閉數據庫連接:示例代碼mysqli_close($link);項目實戰——新聞管理系統9.4

先定一個小目標!熟悉新聞管理系統的項目展示,能夠說出每個頁面要實現的功能。9.4.1項目展示9.4.1項目展示新聞管理系統的主要功能:新聞管理系統添加新聞修改新聞刪除新聞新聞列表展示新聞信息展示分頁查詢9.4.1項目展示新聞列表頁面:9.4.1項目展示新聞詳情頁面:9.4.1項目展示添加新聞頁面:9.4.1項目展示修改新聞頁面:

先定一個小目標!熟悉新聞管理系統的功能,能夠總結每個頁面要實現的具體功能。9.4.2功能介紹新聞管理系統的功能介紹如下:①新聞列表頁面:新聞列表頁面展示新聞的標題、新聞內容、作者名稱和發表時間,每條新聞的標題右側都有“修改”按鈕和“刪除”按鈕。單擊“刪除”按鈕會刪除該條新聞,單擊“修改”按鈕可以修

溫馨提示

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

評論

0/150

提交評論