ZEND:将 XML 数据追加到 SQLDataBase(XML)


ZEND: Appending XML Data to SQLDataBase(XML)

我的问题:无法将XML数据附加到MYSQL数据库中现有的XML数据。

我有一个数组 - $buyer。此数组内部是一个类似于 (shippingTotal => 55) 的$key和$value。我想做的是使用类似于

$param = array(
 'shippingTotal' => $shippingTotal
);
 $where['quote_data = ?'] = $quoteNumber
$n = $db->update('quote_xml', simplexml_load_string($param), $where);

我的问题是quote_data中的当前数据是一个包含大量信息的 XML 元素。有没有办法将 shippingTotal "粘"到所说的现有 XML 中?当我使用上面的代码时,我最终会quote_data变为空。

我还创建了一个名为 $shippingTotal 的变量,这样我就不必使用 $buyer['shippingTotal']。仍然无法正常工作。

感谢您在这个问题上的时间和帮助。亚伦

我看到一些问题:

首先,simplexml_load_string不接受数组参数,只接受 XML 字符串。 由于$params不是有效的参数,因此它返回布尔false。 即使成功,它也返回一个SimpleXMLElement。 若要将其转换为 XML 字符串,必须在将返回的对象传递给 Zend_Db_Table::update() 之前对返回的对象调用 asXML() 方法。

其次,XML 很可能不能仅仅"追加"到其他 XML 上。 我不知道您的表包含什么,但需要以编程方式将 XML 添加到现有 XML 中。 不能追加 XML,因为需要将要添加的数据添加到正确的节点。

您需要做的是首先读取该列的值,使用 SimpleXML 对其进行解析,使用 SimpleXML 函数之一将新数据添加到文档中的相应节点,然后执行更新。

希望有帮助。