当前位置: 首页 > news >正文

mysql 创建xml字段_用MySQL和PHP创建XML

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

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

为了可以运行本文所给出的代码,你需要能过运行PHP和MySQL,而且为了充分利用这些例子,你还需要知道主机名、用户名和口令。例子中的MySQL数据库的格式如图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, $link);

现在,用一个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查询而产生)。

相关文章:

  • java实现 一维装箱问题_c语言来实现贪心算法之装箱问题
  • hmcl电脑java我的世界启动器_hello minecraft下载
  • 强制停止java_java – 如何强制停止Android应用程序
  • acacm icpc java_用Latex高效整理你的ACM-ICPC模板
  • java getmethods_java – 什么决定了Class.getMethods()的返回顺序?
  • java mapper xml 参数_Mybatis 文档篇 3.4:Mapper XML 之 Parameters
  • java类的加载是jvm,JVM学习(一):Java类的加载机制
  • PHP一点上传文件时下载文件啦,PHP中上传大体积文件时需要的设置
  • php big5 转utf8,php如何实现big5转utf8
  • kulc的java算法,Java KualiDecimal.ZERO屬性代碼示例
  • 用php实现一用户登陆程序,php实现简单用户登录功能程序代码
  • php mysql 实例教程,PHP和MySql开发实例教程
  • matlab与plc连接,基于Matlab与PLC的实时控制系统
  • matlab中偶分量怎么表示,matlab信号与系统演示实验
  • mysql使用混合引擎如何,MySQL香港高防服务器在事物中混合使用存储引擎
  • CSS 三角实现
  • download使用浅析
  • eclipse(luna)创建web工程
  • ES学习笔记(12)--Symbol
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 大型网站性能监测、分析与优化常见问题QA
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 对象引论
  • 如何合理的规划jvm性能调优
  • 深度学习入门:10门免费线上课程推荐
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 小程序开发之路(一)
  • 找一份好的前端工作,起点很重要
  • 自定义函数
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • PostgreSQL之连接数修改
  • 扩展资源服务器解决oauth2 性能瓶颈
  • #### go map 底层结构 ####
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (九)One-Wire总线-DS18B20
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET CORE 第一节 创建基本的 asp.net core
  • .Net Core 中间件验签
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net6Api后台+uniapp导出Excel
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • @我的前任是个极品 微博分析
  • [ 蓝桥杯Web真题 ]-布局切换
  • [Angular] 笔记 7:模块
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BZOJ3223]文艺平衡树
  • [C# 开发技巧]如何使不符合要求的元素等于离它最近的一个元素
  • [C]编译和预处理详解
  • [C++]C++入门--引用