第9章 PHP訪問MySQL數據庫php
1. PHP訪問MySQL數據庫服務器的流程mysql
以前學習mysql的時候,採用的是」客戶機/服務器」的體系結構sql
mysql>select * from a; --------》MySQL數據庫服務器數據庫
《 ---------編程
PHP訪問MySQL數據庫的時候,咱們的PHP則充當了客戶機的角色數組
PHP充當了客戶機的角色-----------》MySQL數據庫服務器服務器
《-----------函數式編程
接下來咱們能夠經過phpinfo()的函數來肯定mysql模塊是否被安裝函數
在Mysql裏面,返回的數據大體能夠分爲兩類:學習
Insert,update,delete(DML語句):該類語句執行成功就返回TRUE,不然就返回FALSE
Select(DQL語句):返回的是查詢的結果,專業名詞被稱爲結果集(就是結果的集合)
PHP操做數據庫的步驟:其實就和在客戶端操做數據庫的步驟如出一轍
鏈接數據庫
|
選擇數據庫
|
行被影響—— 執行SQL語句----返回結果集
\ |
\ 處理結果集
|
關閉鏈接
2. 在PHP腳本里面鏈接MySQL服務器
① 鏈接數據庫
在PHP的mysql擴展裏面給咱們提供了一個函數
mysql_connect(「主機名稱」,」用戶名」,」密碼」)
就是和咱們之前經過mysql客戶端鏈接數據庫的語法是同樣的
以下:
在PHP裏面鏈接數據庫和在客戶端同樣
若是鏈接錯誤,報的錯誤信息也是和客戶機是同樣的
由於mysql數據庫模塊如今已經漸漸的被淘汰,如今基本上使用mysqli或者使用pdo
@:錯誤屏蔽運算符 能夠屏蔽錯誤信息
鏈接數據庫成功之後,咱們就能夠經過一系列的MySQL擴展函數來查看數據庫的相關信息
Mysql_get_client_info():獲取客戶端信息
Mysql_get_host_info():獲取主機信息
Mysql_get_proto_info():獲取mysql的協議信息
Mysql_get_server_info():獲取mysql中的服務器信息
② 選擇數據庫
Mysql_select_db(「數據庫名稱」,數據庫資源變量)
這一步和mysql裏面的use 數據庫名操做是同樣的
③ 發送SQL語句
Mysql裏面提供了mysql_query()函數用於執行sql語句的,執行該語句後,若是返回結果集,那麼接收結果集的變量是一個資源類型變量
若是執行的語句沒有結果集返回,則返回TRUE或者FALSE,因此天然接收返回值的變量的數據類型也是布爾類型
④ 處理結果集
處理結果集的函數有下面4個:
Mysql_fetch_row():將結果集中的一條記錄返回而且以索引數組的形式保存
Mysql_fetch_assoc():將結果集中的一條記錄返回而且以關聯數組的形式保存
Mysql_fetch_array():將結果集中的一條記錄返回而且以索引和關聯數組的形式保存,MYSQL_BOTH,MYSQL_NUM,MYSQL_ASSOC
Mysql_fetch_object():將結果集中的一條記錄以對象的形式進行返回
將結果集裏面的全部數據都打印出來,須要外層使用一個while語句
將數據以表格的形式打印輸出
⑤ 關閉鏈接,釋放資源
能夠經過mysql_free_result()函數來釋放資源
經過mysql_close來關閉數據庫鏈接
接下來再介紹幾個比較經常使用的mysql擴展函數
Mysql_field_name():獲取字段名
Mysql_num_rows():獲取結果集中行的數量
Mysql_num_field():獲取結果集中列的數量
MySQLi
Mysqli是在mysql的基礎上的一個升級。最大的改進在於採用面向對象的思想,以前的mysql是面向過程的,像c語言同樣。
Mysqli雖然採用了面向對象的思想,可是仍然能夠採用函數式編程