动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   PHP → 阅读文章

 用MySQL和PHP创建XML

作者来源: 
阅读 1642 人次 , 2006-3-29 4:13:00 


xml是作为数据交换标准而出现的。java和.net都内在支持xml,但是其它平台上的开发者也不用担心自己被这项技术所遗弃了。php就是一个颇受欢迎的支持xml的脚本环境。

在本文中,我将向你介绍利用诸如php和mysql这样的开放源码工具来处理xml的过程。我将以执行一个mysql查询并把从查询所得到数据格式化为xml为例来加以说明。最后,在开始埋头编写代码之前,我将介绍如何把xml写入文件并检测系统设置。

为了可以运行本文所给出的代码,你需要能过运行php和mysql,而且为了充分利用这些例子,你还需要知道主机名、用户名和口令。例子中的mysql数据库的格式如图a所示。让我们看看如何用php来连接该数据库。

图a

用php建立数据库连接

下面的php脚本建立到数据库的连接并执行一个查询:

<?php
$db_name = "xrandomusa_4";
$connection = mysql_connect("mysql.somewhere.com", "username", "password") or die("could not connect.");
$table_name = 'pages';

查询mysql

在mysql连接建立之后,你必须用该连接来建立当前数据库。下面的代码就是用来完成这个任务的:

$db = mysql_select_db($dbname, 上一篇      目录      下一篇);

现在,用一个sql语句来选择$table_name中的所有行:
$query = "select * from " . $table_name;

如有必要,你可以随后添加属性。现在,如下执行查询:
$result = mysql_query($query, $connection) or die("could not complete database query");
$num = mysql_num_rows($result);

你可以通过php.net网站来获得关于所有mysql函数的参考资料。

建立并编写xml

现在,你应该已经做好了建立新xml文档的准备了。这有许多种方法,不过我认为清单a中所用到的方法可以满足绝大多数目的。

现在我们详细介绍这一过程。变量num表示你查询的数据行出现与否,它对mysql的mysql_num_rows函数是可测的。变量$file包含了一个指针,该指针指向php在文件系统中成功的搜索到results.xml时所产生文件对象。如果找到result.xml,则创建你的php文件对象以及指定文件,且其属性是可写的。现在你可以把一个变量的内容打印到创建后的文件(由于你的目录已经设置为允许php写文件,所以这么做是没有问题的)。

注意,从安全的角度来考虑,在实际的应用程序开发中这么做其实是很愚蠢的。为了确保你能够安全的实现本文所涉及的概念,你应该为你所希望打开并写入的文件提供完全路径,并确保该文件位于你的web根目录之下。

然后,php的mysql_fetch_array函数把查询变量$result转换成一个数组,并按其关键字进行循环。如果pgaetitle在查询所返回的栏之中,对每一行返回值都向字符串变量$_xml写入某些文本。

注意运算符“.=”(它用来把xml格式的字符串当作数值来拼接)读取$row。当循环结束的时候,根xml节点打印到变量$_xml之中,所有的变量用php的fwrite函数写入file.xml文件之中。

现在,屏幕上显示出一个链接。确保这条链接指向你的xml文件的路径,否则你无法看到这个格式化xml(该文件用php处理mysql查询而产生)。

 本文Tagsmysql  数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:一个用于MySQL的PHP XML类
· 下一篇:基于PHP与XML的PDF文档生成技术
· 如何将PHP的结果输出到非PHP页面中
· 正则表达式判断email和URL
· PHP重定向三法
· PHP实现文件安全下载
· 杂项函数库


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077