国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

一個用于MySQL的PHP XML類

2024-07-24 12:56:19
字體:
來源:轉載
供稿:網友
我承認我不是php的領導者。然而,在看了一些php的信息之后,我認為有一些功能需要添加到其中來處理數據庫連接和整合xml。要做到這一點,我想我可以創建一個處理連接mysql和使用php中的domxml功能來提供xml輸出的類。然后我就可以在php腳本的任何地方聲明這個類并且在需要使用它的時候可以提供xml功能。


我假設人們使用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能夠正常運行。)

<?php

$myxml = new cmysqlxml("localhost", "test_user", "password", "test");

echo $myxml->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("<root/>");

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找到,在這里你可以下載不同格式的文檔。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遂昌县| 赤水市| 包头市| 牡丹江市| 拜城县| 同心县| 东乡族自治县| 东海县| 黔西| 明水县| 宁陕县| 汝州市| 台东市| 南通市| 长海县| 营口市| 容城县| 凤台县| 宽甸| 密云县| 新津县| 文昌市| 双鸭山市| 乌兰察布市| 开远市| 运城市| 兴业县| 蒙城县| 象州县| 皮山县| 阳谷县| 沙坪坝区| 广西| 昭觉县| 墨玉县| 施甸县| 广州市| 丹东市| 贵定县| 开原市| 郑州市|