程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 百寶箱之介紹PHP Web查詢數據庫基本步驟

百寶箱之介紹PHP Web查詢數據庫基本步驟

編輯:關於PHP編程

PHP是開發WEB動態頁面的首選編程,最近看了一本書收獲很多,現在和大家一起分享一下PHP Web查詢數據庫的知識,下面我們就一起來看看吧。從PHP Web查詢數據庫的基本步驟:

1. 檢查並過濾來自用戶的數據 首先,我們將過濾用戶可能在其搜索條件的起始或結束位置不小心輸入的空白字符,這是用函數trim()來實現。 我們這麼麻煩的檢查用戶輸入數據的原因是防止多個接口連接數據庫,因為用戶從不同的界面進入,這樣可能導致安全問題。

然後,當准備使用用戶輸入的任何數據時,也要適當的過濾一些控制字符,當用戶輸入數據到數據庫時必須轉義數據,,此時使用盜的函數有 addslashes()函數、stripslashes()函數和get_magic_qutoes_gpc()函數。 addslashes()函數為了數據庫查詢語句等的需要在某些字符前加上了反斜線;stripslashes()函數去掉字符串中的反斜線字符;get_magic_qutoes_gpc()函數 魔術添加轉義字符 “”,獲取當前活動配置magic_quotes_runtime設置,如果運行時關閉魔術引號,返回0,否則返回1。我們也可以使用 htmispecialchars()對HTML中的特殊意義字符警醒編碼,htmispecialchars()函數把一些預定義的字符轉換為 HTML 實體 預定義的字符是:& (和號) 成為 & " (雙引號) 成為 " ' (單引號) 成為 ' < (小於) 成為 < > (大於) 成為 >

2. 建立一個到適當數據庫的連接 PHP為連接MySQL提供了函數庫mysqli(i表示改進)。

當在PHP中使用mysqli函數庫是可以使用面向對象或面向過程的語法:

1)面向對象, @ $db = new mysqli('hostname','username','password','dbname');返回一個對象

2)面向過程: @ $db = mysqli_connect('hostname','username','password','dbname');返回一個資源,這個資源表示數據庫的連接,而且 如果使用過程方法,必須將這個資源傳遞到mysqli的所有其它函數。

這與處理函數非常類似mysqli的大多數函數都有面向對象接口和過程接口,二者的差異則在於過程版本的函數名稱以mysqli_開頭,同時要求傳入 mysqli_connect()函數獲得的資源句柄。對於這個規則來說,數據可連接是一個異常,因為它是由mysqli對象的構造函數來創建的。因此嘗試連接時需要進行檢查,mysqli_connect_errno()函數將在出現連接 錯誤時返回一個錯誤號,如果成功,則返回0.

請注意:當連接到數據庫是,通常會議錯誤抑制符@作為第一含代碼。這樣可以巧妙的處理任何錯誤,也可以通過異常來處理。另外,MySQK對同時連接數據庫的連接數量有一定的限制。MySQLi參數max_connections決定了同時連接的個數,該參數和相關的Apache參數 MaxClients的作用是告訴服務器拒絕新的連接請求,從而保證系統資源不會再系統忙碌時或系統癱瘓時被請求或使用。要設置Apache中的 MaxClients參數可以編輯系統中的httpd.conf文件。要為MySQLi設置max_connections參數可以編輯文件my.conf。

選擇使用的數據庫: 在MySQL命令行使用 use dbname;命令;在php中可以用$db->select_db(dbname);或mysqli_select_db(db_resource,dbname)。

3. 查詢數據庫 要執行數據庫查詢,首先應構造查詢語句:$query = "select  from user";然後運行 $result = $db->query($query);或者$result = mysqli_query($db,$query); 面向對象版本將返回一個結果對象;過程版本將返回一個結果資源。無論何種方法都將結果保存在$result變量中工以後使用。如果函數運行失敗將返回 false。

4. 獲取查詢結果 使用不同的函數以不同的方式將查詢結果從結果對象或標識符中取出來,結果對象或標識符是訪問查詢返回行的關鍵。

通常我們要得到結果集中記錄行的行數,並且使用mysqli_fetch_assoc()函數。返回行數:$num_results = $result->num_rows;(行數保存在對象的num_rows成員變量中)或$num_results = mysqli_num_rows($result);然後使用循環遍歷每一行,在循環中調用 $row = $result->fectch_assoc();或者 $row = mysqli_fetch_assoc($result);返回該行的信息。如果是對象返回行則每個關鍵詞為一個屬性名,每個值為屬性中的相應的值;如果以資源返回則返回數組。

還有其他從結果標識符中獲取結果的方法,例如:使用$row = $result->fecth_row($result);或者$row = mysqli_fetch_row($result);將結果取回到一個列舉數組中;也可以使用$row = $result->fecth_object();或者 $row = mysqli_fecth_object($result);江一行去回到一個對象中。

5. 從數據庫斷開 先釋放結果集:$result->free();或 mysqli_free_result($result);然後關閉數據庫連接:$db->close()或者 mysqli_close($db); 嚴格的說,這並不必須,因為腳本執行完畢的時候他們將被自動關閉。

以上就是PHP Web查詢數據庫的基本步驟,不知道大家學會了嗎?趕快試試吧。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved