当前位置: 首页 > 图文教程 > 网络编程 > PHP > 深入浅析:用于MySQL的PHP XML类

PHP
linux php mysql数据库备份实现代码
php mssql 日期出现中文字符的解决方法
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
php 动态添加记录
php 结果集的分页实现代码
php执行sql语句的写法
php连接mysql数据库代码
php 表单验证实现代码
php URL编码解码函数代码
php 表单数据的获取代码
php 异常处理实现代码
php 删除记录实现代码
php 获取mysql数据库信息代码
PHP 文件类型判断代码
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
php session 预定义数组
php session 检测和注销
php session处理的定制
php session应用实例 登录验证
php cookis创建实现代码

深入浅析:用于MySQL的PHP XML类


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 230 ::
收藏到网摘: n/a

本文中作者通过自己创建一个处理连接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能够正常运行。)

以下为引用的内容:

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