WEB开发网
开发学院数据库DB2 使用 DB2 pureXML 和 PHP 构建 Support Knowledge... 阅读

使用 DB2 pureXML 和 PHP 构建 Support Knowledge Base(上)

 2010-02-25 00:00:00 来源:WEB开发网   
核心提示: 该类包含三个变量,$db 变量用于实例化与数据库的连接,使用 DB2 pureXML 和 PHP 构建 Support Knowledge Base(上)(8),每当类需要检索、保存或删除数据时,都将使用数据库连接,进一步了解详情,考虑到可读性,当 Category 类被创建时,$db 变量将作

该类包含三个变量。$db 变量用于实例化与数据库的连接。每当类需要检索、保存或删除数据时,都将使用数据库连接。当 Category 类被创建时,$db 变量将作为一个新的 DB 对象得到调用。DB 类的方法随后可以通过下面的语法用于 Category 类:

$this->db->method_name()

您将在处理数据库的函数中使用该语法。例如:

$this->db->query($sql)

save 函数非常聪明,因为它可以同时处理新记录的创建和现有记录的更新。它将检查对象是否为 $id 属性设置了一个值。如果设置了的话,它将执行一条 UPDATE 语句,如果不是的话,它将使用 INSERT 语句来创建新记录。

SQL/XML 简介

如果您熟悉 SQL 并且开发由关系数据库驱动的应用程序,那么您可能已经注意到 Category 类中的 SQL 语句使用了不寻常的函数。这些函数是对 IBM DB2 中可用 SQL 标准的特殊扩展。这种扩展后的 SQL 被称为 SQL/XML。

SQL/XML 的第一处应用体现在 save 函数中。该函数使用 XMLPARSE 函数将传递给它的文本解析为 XML。这一点在本例中表现良好,因为您处理的 XML 数据都是非常基本的数据。然后,在创建 Article 类时,您会看到一个更为高级的 XML 解析需求。

SQL/XML 通过 XMLTABLE 函数在 getAllCategories、load 和 getCategoryNameById 中也得到了应用。让我们看看清单 5 的 getAllCategories 函数中的 SELECT 语句,进一步了解详情。考虑到可读性,所有 PHP 字符串格式都被从清单中移除。

清单 5. getAllCategories 函数中的 SELECT 语句

SELECT c.id, x.name 
FROM category c, XMLTABLE('$d/category' PASSING c.data AS "d" 
  COLUMNS name VARCHAR(200) PATH 'name') AS x 
ORDER BY x.name 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:使用 DB pureXML

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接