PHP訪問MySQL數據庫
第9章 PHP訪問MySQL數據庫
1. PHP訪問MySQL數據庫服務器的流程
之前學習mysql的時候,采用的是”客戶機/服務器”的體系結構
mysql>select * from a; --------》MySQL數據庫服務器
《 ---------
PHP訪問MySQL數據庫的時候,我們的PHP則充當了客戶機的角色
PHP充當了客戶機的角色-----------》MySQL數據庫服務器
《-----------
接下來我們可以通過phpinfo()的函數來確定
在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雖然采用了面向對象的思想,但是仍然可以采用函數式編程
PHP訪問MySQL數據庫