海南世纪云图网络科技有限公司
咨询热线:400-822-8458 技术支持:0898-66754910 客户服务:0898-32183600

用于MySQL的PHP XML类

发表于:2010-12-01 00:00:00来源:人气:2238

  通过创建一个处理连接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能够正常运行。)

SQL代码
  1.       run_sql_return_xml("SELECT * FROM users");    
  2.          
  3.   classCMySQLXML {   
  4.   
  5.   var $host;   
  6.   
  7.   var $user;   
  8.   
  9.   var $password;   
  10.   
  11.   var $db;   
  12.   
  13.   functionCMySQLXML($host, $user, $password, $db) {   
  14.   
  15.   $this->host = $host;   
  16.   
  17.   $this->user = $user;   
  18.   
  19.   $this->password = $password;   
  20.   
  21.   $this->db = $db;   
  22.   
  23.   }   
  24.   
  25.   functionrun_sql_return_xml($sql_string) {   
  26.   
  27.   $connection = MySQL_connect($this->host, $this->user, $this->password,   
  28.   
  29.   $this->db);   
  30.   
  31.   MySQL_select_db($this->db);   
  32.   
  33.   $result = MySQL_query($sql_string);   
  34.   
  35.   $doc = domxml_open_mem("");   
  36.   
  37.   while ($row = mysql_fetch_array($result, MySQL_ASSOC)) {   
  38.   
  39.   $num_fields = MySQL_num_fields($result);   
  40.   
  41.   $row_element = $doc->create_element(MySQL_field_table($result, 0));   
  42.   
  43.   $doc_root = $doc->document_element();   
  44.   
  45.   $row_element = $doc_root->append_child($row_element);   
  46.   
  47.   for ($i = 0; $i < $num_fields; $i++) {   
  48.   
  49.   $field_name = MySQL_field_name($result, $i);   
  50.   
  51.   $col_element = $doc->create_element($field_name);   
  52.   
  53.   $col_element = $row_element->append_child($col_element);   
  54.   
  55.   $text_node = $doc->create_text_node($row[$field_name]);   
  56.   
  57.   $col_element->append_child($text_node);   
  58.   
  59.   }   
  60.   
  61.   }   
  62.   
  63.   MySQL_free_result($result);   
  64.   
  65.   MySQL_close($connection);   
  66.   
  67.   return $doc->dump_mem(false);   
  68.   
  69.   }   
  70.   
  71.   }  

   这个例子要求你在MySQL上有一个数据库“test”,其中有一个表“users”。而且,你还需要为访问测试数据库上的数据创建一个用户。创建数据库、表等的步骤可以查看MySQL的文档。

  如果你分析一下代码,你就会明白我创建了一个叫做CMySqlXML的类。CMySqlXML构造函数接受四个参数:MySQL的主机名,一个合法的用户名,一个密码和一个数据库名字。构造函数使用这四个参数设置类的host、user、password和db成员变量。

  该类提供的唯一的一个方法是run_sql_return_xml()。它接受一个SQL查询字符串参数。当这个方法执行的时候,它创建一个到MySQL数据库的连接并选择数据库。查询字符串被执行,结果存储到变量$result中。使用domxml_open_mem()函数创建一个新的DOMDocument对象。然后,代码开始循环结果集中的所有记录。对于每一条记录,添加一个与结果集的表同名的行元素到DOMDocument文档元素中。然后为每个字段添加一个元素到行元素中,元素名为字段名。最后,一

文章整理: 世纪云图  https://www.yuntop.cc/

以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

版权申明:本站文章部份来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站部份转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。

微信
网站建设
软件业务
网络营销
400电话