程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 用於MySQL的PHP XML類

用於MySQL的PHP XML類

編輯:PHP綜合

我假設人們使用PHP是原因是他的標價:免費。MySQL為需要向系統中增加數 據庫功能的開發人員提供一個免費的數據庫解決方案。這些解決方案的缺點是在 設置和管理的時候有些復雜。

我在這篇文章中使用的PHP版本是PHP 4.3.4 for Win32,可以從The PHP Group下載。MySQL的版本是MySQL 4.0.16 for Win32,可以從MySQL.com得到。 MySQL的安裝很容易——只要簡單地按照其指令來就可以了。PHP稍微 有一點復雜。

在PHP的下載頁面有兩個文件:一個ZIP文件和一個安裝文件。因為我們需要 添加ZIP文件中的擴展,所以這兩個文件都要下載。下面是下載之後的所要做的 一個簡單步驟:

1. 使用安裝文件安裝PHP;

2. 解壓iconv.dll,將其放到Windows的系統文件夾中;

3. PHP安裝目錄下創建一個目錄(默認為C:\PHP)“extensions” ;

4. 解壓PHP_domxml.dll文件到這個目錄;

5. 在Windows文件夾下找到PHP.ini文件,然後使用記事本或其它文本編輯 器打開。在這個文件中找到“extensions_dir=”,然後將其值修改 為第3步設置的擴展文件夾的完整路徑;

6. 找到“;extension=PHP_domxml.dll”,刪除本行開頭的分號 ;

7. 重新啟動Web服務器。

然後在你的Web目錄下使用下面的代碼創建一個PHP頁面 “test.PHP”。(這段代碼在運行IIS 5.0的Windows 2000 SP3能夠 正常運行。)

run_sql_return_xml("SELECT * FROM users");
classCMySQLXML {
  var $host;
  var $user;
  var $password;
  var $db;
  functionCMySQLXML($host, $user, $password, $db) {
    $this->host = $host;
    $this->user = $user;
    $this->password = $password;
    $this->db = $db;
  }
   functionrun_sql_return_xml($sql_string) {
    $connection = MySQL_connect($this->host, $this->user, $this->password,
$this->db);
    MySQL_select_db($this->db);
    $result = MySQL_query($sql_string);
    $doc = domxml_open_mem("");
    while ($row = mysql_fetch_array($result, MySQL_ASSOC)) {
      $num_fields = MySQL_num_fields($result);
      $row_element = $doc->create_element(MySQL_field_table ($result, 0));
      $doc_root = $doc->document_element();
      $row_element = $doc_root->append_child ($row_element);
      for ($i = 0; $i < $num_fields; $i++) {
        $field_name = MySQL_field_name($result, $i);
        $col_element = $doc->create_element ($field_name);
        $col_element = $row_element->append_child ($col_element);
        $text_node = $doc->create_text_node($row [$field_name]);
        $col_element->append_child($text_node);
      }
    }
    MySQL_free_result($result);
    MySQL_close($connection);
    return $doc->dump_mem(false);
  }
 }

這個例子要求你在MySQL上有一個數據庫“test”,其中有一個表 “users”。而且,你還需要為訪問測試數據庫上的數據創建一個用 戶。創建數據庫、表等的步驟可以查看MySQL的文檔。

如果你分析一下代碼,你就會明白我創建了一個叫做CMySqlXML的類。 CMySqlXML構造函數接受四個參數:MySQL的主機名,一個合法的用戶名,一個密 碼和一個數據庫名字。構造函數使用這四個參數設置類的host、user、password 和db成員變量。

該類提供的唯一的一個方法是run_sql_return_xml()。它接受一個SQL查詢字 符串參數。當這個方法執行的時候,它創建一個到MySQL數據庫的連接並選擇數 據庫。查詢字符串被執行,結果存儲到變量$result中。使用domxml_open_mem() 函數創建一個新的DOMDocument對象。然後,代碼開始循環結果集中的所有記錄 。對於每一條記錄,添加一個與結果集的表同名的行元素到DOMDocument文檔元 素中。然後為每個字段添加一個元素到行元素中,元素名為字段名。最後,一個 文本節點被添加到每個字段節點,節點的值為該字段的值。

在循環所有行之後,代碼釋放結果集並關閉連接。產生的DOMDocument XML從 函數中返回。

在PHP頁面的開始處你會看到CMySQLXML對象被實例化,run_sql_return_xml ()方法被調用。這個方法的返回值被返回給客戶。domxml功能除了PHP函數命名 約定之外都遵守DOM規范。

如果需要更多有關DOM規范的信息,可以訪問W3C的站點。而更多domxml的信 息則可以從The PHP Group找到,在這裡你可以下載不同格式的文檔。

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