天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

一個(gè)用于MySQL的PHP XML類

我承認(rèn)我不是php的領(lǐng)導(dǎo)者。然而,在看了一些php的信息之后,我認(rèn)為有一些功能需要添加到其中來處理數(shù)據(jù)庫連接和整合XML。要做到這一點(diǎn),我想我可以創(chuàng)建一個(gè)處理連接MySQL和使用php中的domxml功能來提供XML輸出的類。然后我就可以在php腳本的任何地方聲明這個(gè)類并且在需要使用它的時(shí)候可以提供XML功能。

 
我假設(shè)人們使用php是原因是他的標(biāo)價(jià):免費(fèi)。MySQL為需要向系統(tǒng)中增加數(shù)據(jù)庫功能的開發(fā)人員提供一個(gè)免費(fèi)的數(shù)據(jù)庫解決方案。這些解決方案的缺點(diǎn)是在設(shè)置和管理的時(shí)候有些復(fù)雜。

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

php的下載頁面有兩個(gè)文件:一個(gè)ZIP文件和一個(gè)安裝文件。因?yàn)槲覀冃枰砑覼IP文件中的擴(kuò)展,所以這兩個(gè)文件都要下載。下面是下載之后的所要做的一個(gè)簡單步驟:

1. 使用安裝文件安裝php

2. 解壓iconv.dll,將其放到Windows的系統(tǒng)文件夾中。

3. php安裝目錄下創(chuàng)建一個(gè)目錄(默認(rèn)為C:/php)“extensions”。

4. 解壓php_domxml.dll文件到這個(gè)目錄。

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

6. 找到“;extension=php_domxml.dll”,刪除本行開頭的分號(hào)。

7.重新啟動(dòng)Web服務(wù)器

然后在你的Web目錄下使用下面的代碼創(chuàng)建一個(gè)php頁面“test.php”。(這段代碼在運(yùn)行IIS 5.0的Windows 2000 SP3能夠正常運(yùn)行。)

<?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);

    }

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

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

該類提供的唯一的一個(gè)方法是run_sql_return_xml()。它接受一個(gè)SQL查詢字符串參數(shù)。當(dāng)這個(gè)方法執(zhí)行的時(shí)候,它創(chuàng)建一個(gè)到MySQL數(shù)據(jù)庫的連接并選擇數(shù)據(jù)庫。查詢字符串被執(zhí)行,結(jié)果存儲(chǔ)到變量$result中。使用domxml_open_mem()函數(shù)創(chuàng)建一個(gè)新的DOMDocument對(duì)象。然后,代碼開始循環(huán)結(jié)果集中的所有記錄。對(duì)于每一條記錄,添加一個(gè)與結(jié)果集的表同名的行元素到DOMDocument文檔元素中。然后為每個(gè)字段添加一個(gè)元素到行元素中,元素名為字段名。最后,一個(gè)文本節(jié)點(diǎn)被添加到每個(gè)字段節(jié)點(diǎn),節(jié)點(diǎn)的值為該字段的值。

在循環(huán)所有行之后,代碼釋放結(jié)果集并關(guān)閉連接。產(chǎn)生的DOMDocument XML從函數(shù)中返回。

php頁面的開始處你會(huì)看到CMySqlXML對(duì)象被實(shí)例化,run_sql_return_xml()方法被調(diào)用。這個(gè)方法的返回值被返回給客戶。domxml功能除了php函數(shù)命名約定之外都遵守DOM規(guī)范。

如果需要更多有關(guān)DOM規(guī)范的信息,可以訪問W3C的站點(diǎn)。而更多domxml的信息則可以從The php Group找到,在這里你可以下載不同格式的文檔。


--------------------------------------------------------------------------------
本文作者: Phillip Perkins是Ajilon Consulting的簽約人。他的經(jīng)驗(yàn)很豐富,從機(jī)器控制和客戶/服務(wù)器到企業(yè)內(nèi)部網(wǎng)應(yīng)用。

php技術(shù)一個(gè)用于MySQL的PHP XML類,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产成人久久精品激情 | 99久久爱re热6在线播放 | 上课失禁丨vk | 和美女啪啪啪动态图 | 伊人色综合久久天天网 | 任你躁国语自产二区在线播放 | 久久综合给合久久狠狠狠… | 孕妇bbwbbwbbwbbw超清 | 中文中幕无码亚洲在线 | 羞羞漫画视频 | 最新亚洲中文字幕在线观看 | 在线亚洲免费 | 糙汉顶弄抽插HHHH | 牛牛在线精品视频(正) | 人妻精品久久无码专区 | 国产精品一国产精品免费 | 国产精品JK白丝AV网站 | 中文字幕一区二区三区在线不卡 | 天美传媒在线观看完整高清 | 黄色三级网站在线观看 | 精品国产乱码久久久久久免费流畅 | 国产白丝精品爽爽久久久久久蜜臀 | 亚洲精品一卡二卡三卡四卡2021 | 一个人免费视频在线观看高清频道 | yellow片高清视频免费看 | 亚洲乱亚洲乱妇13p 亚洲乱色视频在线观看 | 99午夜高清在线视频在观看 | 千禧金瓶梅 快播 | 美女大本营 | 亚洲精品久久久久AV无码 | 国产成人免费高清在线观看 | 成年美女黄网站色app | 北条麻妃久久99精品 | 青草国产在线视频免费 | 性西欧俄罗斯极品 | 麻花豆传媒剧国产免费mv观看 | 一本久道久久综合婷婷五月 | 观看免费做视频 | 香蕉精品国产高清自在自线 | 亚洲欧美免费无码专区 | 99久久国产综合精品网成人影院 |