一个用于MySQL的PHP XML类

自家认可小编不是PHP的首长。可是,在看了有的PHP的音信之后,小编感觉有一对效果必要增多到里头来拍卖数据库连接和整合XML。要到位那或多或少,小编想本身能够创造三个甩卖连接MySQL和行使PHP中的domxml功用来提供XML输出的类。然后本身就能够在PHP脚本的其余地点证明这一个类何况在须要接收它的时候能够提供XML成效。

自己假如大家使用PHP是原因是他的明码:无需付费。MySQL为必要向系统中扩张数据库功效的开垦人士提供二个免费的数据库实施方案。那些施工方案的破绽是在安装和处理的时候有个别复杂。

正文中作者通过和谐创建三个甩卖连接MySQL和行使PHP中的domxml功效来提供XML输出的类。那样就可以能够在PHP脚本的此外地点评释那一个类何况在须要接受它的时候能够提供XML功效。

本身在这里篇作品中采用的PHP版本是PHP 4.3.4 for Win32,能够从The PHP
Group下载。MySQL的版本是MySQL 4.0.16 for
Win32,能够从MySQL.com得到。MySQL的安装非常轻巧――只要轻便地据守其指令来就足以了。PHP微微有一点繁琐。

纵然大家使用PHP是原因是他的明码:免费。MySQL为必要向系统中追加数据库成效的开辟职员提供一个免费的数据库建设方案。这个设计方案的后天不良是在安装和拘留的时候有个别复杂。

在PHP的下载页面有五个文本:三个ZIP文件和三个安装文件。因为大家必要增添ZIP文件中的扩充,所以那三个文件都要下载。下边是下载之后的所要做的一个回顾步骤:

自己在这里篇文章中动用的PHP版本是PHP 4.3.4 for Win32,能够从The PHP
Group下载。MySQL的版本是MySQL 4.0.16 for
Win32,能够从MySQL.com取得。MySQL的装置相当轻巧——只要简单地依据其指令来就足以了。PHP稍稍有好几长短不一。

  1. 采用安装文件安装PHP。

  2. 解压iconv.dll,将其置于Windows的系统文件夹中。

  3. PHP安装目录下制造一个目录“extensions”。

  4. 解压php_domxml.dll文件到那一个目录。

在PHP的下载页面有五个文件:一个ZIP文件和贰个安装文件。因为大家必要增加ZIP文件中的扩张,所以那五个文件都要下载。上面是下载之后的所要做的叁个容易易行步骤:

5.
在Windows文件夹下找到php.ini文件,然后使用记事本或其余文本编辑器张开。在此个文件中找到“extensions_dir=”,然后将其值改过为第3步设置的恢弘文件夹的共同体路线。

  1. 接收安装文件安装PHP;

  2. 解压iconv.dll,将其放置Windows的系统文件夹中;

  3. PHP安装目录下创办三个目录(私下认可为C:PHP卡塔尔国“extensions”;

  4. 解压PHP_domxml.dll文件到这一个目录;

  1. 找到“;extension=php_domxml.dll”,删除本行发轫的分行。

5.
在Windows文件夹下找到PHP.ini文件,然后选取记事本或其余文本编辑器张开。在此个文件中找到“extensions_dir=”,然后将其值校勘为第3步设置的扩大文件夹的总体路线;

7.双重启航Web服务器。

  1. 找到“;extension=PHP_domxml.dll”,删除本行起头的子集团;

  2. 再也启航Web服务器。

然后在你的Web目录下行使上面包车型客车代码成立三个PHP页面“test.php”。

接下来在您的Web目录下采纳下边包车型客车代码创立三个PHP页面“test.PHP”。(这段代码在运行IIS
5.0的Windows 二〇〇四 SP3能够符合规律运转。卡塔尔

?php

以下为引用的原委:
      run_sql_return_xml(“SELECT * FROM users”);
     
  classCMySQLXML {

$myxml = new CMySqlXML(“localhost”, “test_user”, “password”, “test”);

  var $host;

echo $myxml-run_sql_return_xml(“SELECT * FROM users”);

  var $user;

classCMySqlXML {

  var $password;

var $host;

  var $db;

var $user;

  functionCMySQLXML($host, $user, $password, $db) {

var $password;

  $this->host = $host;

var $db;

  $this->user = $user;

functionCMySqlXML($host, $user, $password, $db) {

  $this->password = $password;

$this-host = $host;

  $this->db = $db;

$this-user = $user;

  }

$this-password = $password;

  functionrun_sql_return_xml($sql_string) {

$this-db = $db;

  $connection = MySQL_connect($this->host, $this->user,
$this->password,

}

  $this->db);

functionrun_sql_return_xml($sql_string) {

  MySQL_select_db($this->db);

$connection = mysql_connect($this-host, $this-user, $this-password,

  $result = MySQL_query($sql_string);

$this-db);

  $doc = domxml_open_mem(“”);

mysql_select_db($this-db);

  while ($row = mysql_fetch_array($result, MySQL_ASSOC)) {

$result = mysql_query($sql_string);

  $num_fields = MySQL_num_fields($result);

$doc = domxml_open_mem(“root/”);

  $row_element =
$doc->create_element(MySQL_field_table($result, 0));

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

  $doc_root = $doc->document_element();

$num_fields = mysql_num_fields($result);

  $row_element = $doc_root->append_child($row_element);

$row_element = $doc-create_element(mysql_field_table($result, 0));

  for ($i = 0; $i < $num_fields; $i++) {

$doc_root = $doc-document_element();

  $field_name = MySQL_field_name($result, $i);

$row_element = $doc_root-append_child($row_element);

  $col_element = $doc->create_element($field_name);

for ($i = 0; $i $num_fields; $i++) {

  $col_element = $row_element->append_child($col_element);

$field_name = mysql_field_name($result, $i);

  $text_node = $doc->create_text_node($row[$field_name]);

$col_element = $doc-create_element($field_name);

  $col_element->append_child($text_node);

$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_free_result($result);

  }

mysql_close($connection);

  }
 

return $doc-dump_mem(false);

以这件事例要求你在MySQL上有一个数据库“test”,在那之中有四个表“users”。并且,你还亟需为访谈测量试验数据库上的数据创造二个客商。创设数据库、表等的步子能够查阅MySQL的文书档案。

}

假若你剖析一下代码,你就能知晓笔者创造了贰个叫做CMySqlXML的类。CMySqlXML布局函数选取七个参数:MySQL的主机名,两个法定的顾客名,三个密码和八个数据库名字。架构函数使用那七个参数设置类的host、user、password和db成员变量。

}
那么些事例必要你在MySQL上有二个数据库“test”,当中有一个表“users”。何况,你还需求为访谈测量检验数据库上的数量创立八个客户。成立数据库、表等的步骤能够查阅MySQL的文书档案。

此类提供的独一无二的多个办法是run_sql_return_xml(卡塔尔国。它承当贰个SQL查询字符串参数。当这些艺术推行的时候,它创制二个到MySQL数据库的连年并选择数据库。查询字符串被履行,结果存款和储蓄到变量$result中。使用domxml_open_mem(卡塔尔函数创设二个新的DOMDocument对象。然后,代码起始循环结果集中的富有记录。对于每一条记下,增添叁个与结果集的表同名的行成分到DOMDocument文书档案成分中。然后为每一种字段增多三个成分到行成分中,成分名叫字段名。最后,三个文件节点被增多到每种字段节点,节点的值为该字段的值。

假定您深入深入分析一下代码,你就能够知道本人创制了三个堪当CMySqlXML的类。CMySqlXML布局函数选拔八个参数:MySQL的主机名,三个官方的顾客名,叁个密码和多少个数据库名字。构造函数使用那四个参数设置类的host、user、password和db成员变量。

在循环全体行之后,代码释放结果集并关闭连接。发生的DOMDocument
XML从函数中回到。

此类提供的独一的三个主意是run_sql_return_xml(卡塔尔国。它承当一个SQL查询字符串参数。当这一个办法实践的时候,它创立二个到MySQL数据库的接连并精选数据库。查询字符串被实践,结果存款和储蓄到变量$result中。使用domxml_open_mem(State of Qatar函数成立多少个新的DOMDocument对象。然后,代码初始循环结果集中的具有记录。对于每一条记下,增加多个与结果集的表同名的行成分到DOMDocument文书档案元素中。然后为每种字段增多一个因素到行成分中,成分名字为字段名。最终,多少个文本节点被加多到每种字段节点,节点的值为该字段的值。

在PHP页面包车型客车最早处你会见到CMySQLXML对象被实例化,run_sql_return_xml(卡塔尔方法被调用。那几个方式的再次回到值被再次来到给客商。domxml作用除了PHP函数命名约定之外都服从DOM标准。

在循环全数行之后,代码释放结果集并关闭连接。发生的DOMDocument
XML从函数中回到。

倘使须求更加的多关于DOM规范的消息,能够访谈W3C的站点。而越来越多domxml的音讯则能够从The
PHP Group找到,在这里地您能够下载分裂格式的文档。

在PHP页面包车型客车开首处你会见到CMySqlXML对象被实例化,run_sql_return_xml(卡塔尔国方法被调用。这么些艺术的重返值被再次来到给客户。domxml功用除了PHP函数命名约定之外都坚决守住DOM规范。

就算须要越多关于DOM标准的音讯,能够访问W3C的站点。而越多domxml的新闻则足以从The
PHP Group找到,在那您能够下载分化格式的文书档案。


本文小编: 菲尔lip 珀金s是Ajilon
Consulting的签订公约人。他的涉世很丰盛,从机器调控和客户/服务器到公司内部网选取。

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图