欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【深入浅析:用于MySQL的PHP XML类】,下面是详细的分享!
深入浅析:用于MySQL的PHP XML类
本文中作者通过自己创建一个处理连接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"); 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找到,在这里你可以下载不同格式的文档。
以上所分享的是关于深入浅析:用于MySQL的PHP XML类,下面是编辑为你推荐的有价值的用户互动:
相关问题:一个关于PHP面向过程和面向对象的问题
答:面向对象,是把一些常用的操作进行类封装起来,方便调用,需要用的地方,调用一下即可,这样,开发方便,维护也方便!修改这个封装的类,即可达到修改全站的目的! 面向过程,是在每一个地方都使用单独的代码进行操作,这样开发的时候重复累赘,... >>详细
相关问题:目前公司架构有JAVA, PHP, MYSQL, JS, XML, CSS, L...
答:呵呵,忽悠的人经常有,不过以LZ的智商,我们能忽悠的了你? 看你们公司的架构,个人感觉是不是用php做前台(网站),java做后台,搜索或者底层之类的,js、css是做前台开发必须要了解的,mysql是数据库,作为普通开发人员只要知道怎么用就好了... >>详细
相关问题:PHP的mysql类中的&&求解
答:$serverset应该是一段数据库操作吧 如果$serverset && mysql_query("SET $serverset");两者之一不成立,就不执行下面的. $serverset如果没值的话 那你想对数据库操作什么? >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
