學習目標
PHP操作MySQL的步驟
PHP連接MySQL服務器
選擇當前數據庫
執(zhí)行各種SQL語句
從結果集獲取一行數據
綜合案例:學生信息管理
phpMyAdmin****的使用方法
1)導入墙基、導出數據庫文件
2)創(chuàng)建和操作數據庫
Navicat的使用方法
1)導入、導出數據庫文件
2)創(chuàng)建和操作數據庫
需求: 統(tǒng)計學生信息
思路:創(chuàng)建表單,輸入學生信息狞悲,保存起來焰檩,并顯示
前提:PHP必須開啟操作mysql的擴展 php_mysqli.dll的擴展
說明:低版本的PHP操作mysql的擴展是php_mysql.dll,高版本的PHP回右,已經開始廢棄php_mysql.dll,高版本的使用php_mysqli.dll和php_pdo.dll.
如何查看PHP有沒有開啟此擴展专控?
現在php.ini中開啟擴展
去掉前面的 分號(;)
重啟apache,然后在PHP腳本中使用phpinfo()進行查看沾歪,
或者使用php -m查看
phpinfo();
PHP操作MySQL的步驟:
1中捆、PHP連接數據庫
2鸯匹、選擇數據庫
3、設置字符集
4泄伪、發(fā)送SQL語句
5殴蓬、執(zhí)行SQL語句
6、返回結果
7蟋滴、釋放資源
PHP連接MySQL服務器
1染厅、mysqli_connect()
描述:連接到 MySQL服務器
語法:mysqli mysqli_connect([host][,username][,password][,dbname][,port])
參數:
host:MySQL服務器〗蚝可以包含端口號肖粮,默認值為“l(fā)ocalhost:3306”
username:用戶名。默認值是服務器進程所有者的用戶名尔苦;
password:密碼涩馆。
dbname:數據庫名稱。
port:MySQL服務器的端口號蕉堰,默認為3306凌净。
返回值:如果連接成功,則返回MySQLi連接對象屋讶。如果失敗冰寻,則返回FALSE。
2皿渗、****mysqli_connect_error()
描述:返回上一個 MySQL 連接產生的文本錯誤信息
語法:string mysqli_connect_error ( void)
參數:沒有參數斩芭。
3****轻腺、mysqli_close()
描述:關閉先前打開的數據庫連接
語法:bool mysqli_close ( mysqli $link )
函數:
mysqli_error(連接資源) 錯誤信息
mysqli_errno(連接資源) 錯誤編號
選擇當前數據庫
描述:一個數據庫服務器可能包含很多的數據庫,通常需要針對某個具體的數據庫進行編程
語法:bool mysqli_select_db(mysqli $link, string $database)
返回值:如果成功返回TRUE划乖,失敗則返回FALSE贬养。
設置客戶端字符集
描述:設置默認字符編碼
語法:bool mysqli_set_charset ( mysqli charset )
返回:成功時返回 TRUE, 或者在失敗時返回 FALSE琴庵。
執(zhí)行各種SQL語句
mysqli_query()
描述:發(fā)送一條 MySQL 查詢误算;
語法:resource mysqli_query(mysqli $link , string $query )
參數:
$query
是查詢字符串;
$link
是創(chuàng)建的活動的數據庫連接迷殿;
說明:mysqli_query() 僅對 SELECT儿礼,SHOW 或 DESCRIBE 語句返回一個mysqli_result結果集對象,如果查詢執(zhí)行不正確則返回 FALSE庆寺。對于其它類型的 SQL 語句蚊夫,mysqli_query()在執(zhí)行成功時返回 TRUE,出錯時返回 FALSE懦尝。非 FALSE 的返回值意味著查詢是合法的并能夠被服務器執(zhí)行知纷。
注意:查詢字符串不應以分號結束,和命令行模式下有區(qū)別陵霉。
從結果集獲取一行數據
1琅轧、mysqli_fetch_row()
? 描述:從結果集中取得一行作為索引數組;
? 格式:array mysqli_fetch_row ( mysqli_result $result )
? 返回:返回根據所取得的行生成的數組撩匕,如果沒有更多行則返回 FALSE鹰晨。
? 說明:mysqli_fetch_row() 從指定的結果標識關聯的結果集中取得一行數據并作為數組返回。每個結果的列儲存在一個數組的單元中止毕,偏移量從 0 開始模蜡。
? 提示:依次調用mysqli_fetch_row()將返回結果集中的下一行,如果沒有更多行則返回FALSE扁凛。
2忍疾、mysqli_fetch_assoc()
ü 描述:從結果集中取得一行作為關聯數組
ü 語法:array mysqli_fetch_assoc ( mysqli_result $result )
ü 返回值:從結果集取得的行生成的關聯數組,如果沒有更多行則返回 FALSE谨朝;
ü 注意:此函數返回的字段名大小寫敏感卤妒。
3、mysqli_fetch_array()
ü 描述:從結果集中取得一行作為關聯數組字币,或數字數組则披,或二者兼有;
ü 語法:array mysqli_fetch_array ( mysqli_result result_type = MYSQLI_BOTH ] )
ü 參數:$result_type是一個常量洗出,取值:MYSQLI_BOTH(兩者兼有士复,默認)、MYSQLI_ASSOC(關聯索引)、MYSQLI_NUM(數字索引)
ü 返回:返回根據從結果集取得的行生成的數組阱洪,如果沒有更多行則返回 FALSE便贵。
ü 注意:本函數返回的字段名區(qū)分大小寫。
4冗荸、mysqli_fetch_all()
ü 描述:從結果集中取得所有行作為關聯數組承璃、枚舉數組、或二者兼有
ü 語法:mixed mysqli_fetch_all ( mysqli_result resulttype = MYSQLI_NUM ] )
獲取記錄數
1蚌本、mysqli_num_rows()
ü 描述:取得結果集中行的數目
ü 語法:int mysqli_num_rows ( mysqli_result $result )
ü 說明:mysqli_num_rows()返回結果集中行的數目盔粹。
ü 注意:此命令僅對 SELECT 語句有效。
2魂毁、mysqli_affected_rows()
ü 描述:取得前一次 MySQL 操作所影響的記錄行數玻佩;
ü 語法:int mysqli_affected_rows ( mysqli $link )
ü 說明:取得最近一次與 $link 關聯的 INSERT、UPDATE 或 DELETE 查詢所影響的記錄行數席楚。
特殊情況:
3、mysqli_insert_id()
ü 描述:取得上一次插入操作的主鍵ID税稼;
ü 語法:int mysqli_affected_rows ( mysqli $link )
ü 說明:主要針對insert操作
綜合案例:學生信息管理
1烦秩、創(chuàng)建數據庫和表
2、制作表單 add.html
3郎仆、添加入庫 add.php
4只祠、展示數據 index.php
5、刪除 del.php
index.php
del.php
6扰肌、修改
index.php
update.php
update.html
edit.php